浙大版《C语言程序设计(第3版)》题目集 - 习题11-7 奇数值结点链表(20 分)

简介: 浙大版《C语言程序设计(第3版)》题目集 - 习题11-7 奇数值结点链表(20 分)

题目链接:点击打开链接

题目大意:略。

解题思路:题目说删除了,其实可以转化为再搞一个获取奇数时的做法来做偶数的情况,最后把地址赋值给L,这样思路就简单许多~。还有这里带两个星号的L,其实多了一个星号是因为传参时,传进去的是指针变量的地址(此地址非内容)

AC 代码

structListNode*readlist()
{
structListNode*h, *p, *pre;
intda, fst=1;
while(~scanf("%d", &da) &&da!=-1)
    {
p=(structListNode*)malloc(sizeof(structListNode));
p->data=da;
if(!fst) pre->next=p, pre->next->next=NULL, pre=pre->next;
if(fst) pre=h=p, fst=0;
    }
returnh;
}
structListNode*getodd( structListNode**L )
{
structListNode*p, *pre1, *pre2, *h1=NULL, *h2=NULL;
intf1=1, f2=1, da;
while(*L)
    {
da=(*L)->data;
if(da%2)
        {
p=(structListNode*)malloc(sizeof(structListNode));
p->data=da;
if(!f1) pre1->next=p, pre1->next->next=NULL, pre1=pre1->next;
if(f1) pre1=h1=p, f1=0;
        }
else        {
p=(structListNode*)malloc(sizeof(structListNode));
p->data=da;
if(!f2) pre2->next=p, pre2->next->next=NULL, pre2=pre2->next;
if(f2) pre2=h2=p, f2=0;
        }
*L=(*L)->next;
    }
*L=h2;
returnh1;
}
目录
相关文章
|
17天前
|
C语言
对链表使用插入排序的C语言实现示例
对链表使用插入排序的C语言实现示例
|
1月前
|
C语言
C语言模块化程序设计
C语言模块化程序设计
21 0
|
1月前
|
存储 文件存储 C语言
《C语言程序设计》课程设计 -- 火车票票务管理系统
《C语言程序设计》课程设计 -- 火车票票务管理系统
23 1
|
1月前
|
存储 C语言 索引
在C语言中静态链表
在C语言中静态链表
17 1
|
1月前
|
存储 算法 C语言
在C语言中的动态链表
在C语言中的动态链表
9 0
|
1月前
|
前端开发 C语言
c语言中的链表
c语言中的链表
9 1
|
1月前
|
存储 C语言
C语言顺序结构程序设计
C语言顺序结构程序设计
21 0
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
11 2
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
15 0
|
1月前
|
C语言
【C语言】用函数实现模块化程序设计
【C语言】用函数实现模块化程序设计