[程序说明] 本程序从键盘读入整数,并按从大到小的顺序输出输入正整数中互不相等的那些整数。程序以便读入整数,以便构造一个从大到
小顺序链接的的链表,直至不能从键盘读入整数,然后顺序输出链表上各节点的整数值。主函数每读入一个整数,就调用函数insert(),函数in
sert()将还未出现杂链表上的正数按从大到小的顺序插如到链表中。
为了插入方便,链表杂表首有一个辅助节点。
[程序]
#include
#include
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的括号中该填入的内容;(10分)
2、写一个函数Sum,求以上链表中所有整数之和;(5分)
3、写一个函数Destory,将以上链表所占的内存释放。(5分0