问答题

[说明] 本程序包含的函数及其功能说明如下: (1)函数first_insert()的功能是在已知链表的首表元之前插入一个指定值的表元; (2)函数reverse_copy()的功能是按已知链表复制出一个新链表,但新链表的表元链接顺序与 已知链表的表元链接顺序相反; (3)函数Print_link()用来输出链表中各表元的值; (4)函数free_link()用来释放链表全部表元空间。 [程序] #include <stdio. h > #include <malloe. h > typodef struct node { int val; struct node * next; } NODE; void first_insert(NODE * * p,int v) { NODE *q = (NODE *) malloe(sizeof(NODE)); q->val = v; q->next = *p; /* 为新表元赋值*/ * p = (1) ; } NODE * reverse_copy( NODE * p) { NODE * u; for(u=NULL; p!=NULL; p=p->next) first_insert( (2) ); return u; } void printlink(NODE * p ) { for(; (3) ) prinff("%d\t", p->val); printf(" \n"); } void free_link( NODE * p) { NODE * u; while(p! =NULL) { u=p->next;free(p); (4) ; } void main( ) { NODE * link1 , * link2; int i; link1 = NULL; for(i=1; i<= 10; i+ + )first_insert(&linkl, i); link2 = reverse_copy(link1 ); (5) ; free_link( linkl ) ;free_link(link2); }

【参考答案】

(1)q (2)&u,p->val (3)p!=NULL;P= p->next (4)P=u (5)print_link......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题