本程序从键盘读入整数,并按从大到小的顺序输出输入正整数中互不相等的那些整数。程序以便读入整数,以便构造一个从大到 小顺序链接的的链表,直至不能从键盘读入整数,然后顺序输出链表上各节点的整数值。主函数每读入一个整数,就调用函数insert(),函数in sert()将还未出现杂链表上的正数按从大到小的顺序插如到链表中。 为了插入方便,链表杂表首有一个辅助节点。
#include <studio. h>
#include <malloc. h>
typedef struct node{ int val; struct node *next; }NODE;
void insert(NODE *list,int x){
NODE *u,*v,*p;
u=list;v=u->nest;
while((1)&&xval) /寻找插入位置/
{u=v;v=v->nest;}
if(v==NULL|| (2) ){ /判是否要插入新节点/
p=(NODE *)malloc(sizeof(NODE));
p->val=x; /生成新节点/
(3) =v;
(4) =p; /插入新节点/ } }
mian(){ int x; NODE *head,p; /首先建立只有辅助节点的空链表/
head=(NODE)malloc(sizeof(NODE));
(5) =NULL;
printf("Enter integers:\n");
while(scanf("%d",&x)==1) /反复读入整数插入链表/
insert(head,x);
for(p=head->next;p!->NULL;p=p->next)
printf("%d\t", p->val); }
[问题] 1、写出上面带标号1-5的括号中该填入的内容;
2、写一个函数Sum,求以上链表中所有整数之和
3、写一个函数Destory,将以上链表所占的内存释放。
怎么把这种链表程序补充完整啊?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 技术专家团-小桥流水 2022-10-13 12:09关注
代码补充并完善如下:
#include <stdio.h> #include <malloc.h> typedef struct node { int val; struct node* next; }NODE; void insert(NODE* list, int x) { NODE* u, * v, * p; u = list; v = u->next; while ( v!=NULL && x < v->val) /* 寻找插入位置 */ //(1) { u = v; v = v->next; } if (v == NULL || x > v->val ) { //(2) /* 判是否要插入新节点 */ p = (NODE*)malloc(sizeof(NODE)); p->val = x; /* 生成新节点 */ p->next = v; //(3) u->next = p; /* 插入新节点*/ //(4) } } // 求以上链表中所有整数之和 int Sum(NODE* head) { NODE* p = 0; int s = 0; if (head == NULL) return 0; p = head->next; while (p != NULL) { s += p->val; p = p->next; } return s; } // 将以上链表所占的内存释放 void Destory(NODE** head) { NODE* p; while (*head) { p = (*head)->next; free(*head); *head = p; } *head = 0; } int main() { int x; NODE* head, *p; /* 首先建立只有辅助节点的空链表 */ head = (NODE*)malloc(sizeof(NODE)); head->next = NULL; //(5) printf("Enter integers:\n"); while (scanf("%d", &x) == 1) /* 反复读入整数插入链表 */ insert(head, x); for (p = head->next; p!=NULL; p = p->next) printf("%d\t", p->val); //求链表的和 printf("\nSum=%d\n", Sum(head)); //释放链表内存 Destory(&head); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料