经典指数          
原因
3999
浏览数
0
收藏数
 

给定程序中,函数fun的功能是将不带头结点的单向链表逆置,即若原链表中从头至尾结点数据与依次为2、4、6、8、10,逆置后,从头至尾结点数据依次为10、8、6、4、2。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 试题程序。 #define N 5 typedef struct node {       int data;       struct node *next; } NODE;  1 *fun(NODE *h) {     NODE *p, *q, *r;     p = h;     if (p == NULL)         return NULL;     qz = p->next;     p->next = NULL;     while (q)            {         r = q-> 2 ;         q->next = p;         p = q;         q = 3 ;     }     return p; } NODE *creatlist(int a[ ]) {     NODE *h, *p, *q; int i;     h = NULL;     for (i = 0; i < N ; i ++)     {         q = (NODE *)malloc(sizeof(NODE));         q->data = a[i];         q->next = NULL;         if (h == NULL)             h = p = q;         else         {             p->next = q;             p = q;         }              }     return h; } void outlist(NODE *h) {     NODE *p;     p = h;     if (p == NULL)         printf("The list is NULL!\n");     else     {         printf("\nHead ");         do         {             printf("->%d", p->data);             p = p->next;         }         while (p != NULL);         printf("->End\n");     } } main( ) {     NODE *head;     int a[N] = {2, 4, 6, 8, 10};     head = creatlist(a);     printf("\nThe original list:\n");     outlist(head);     head = fun(head);     printf("\nThe list after inverting :\n");     outlist(head); }

     举报   纠错  
 
切换
暂时还没有答案,欢迎分享你的解答 . . .
撰写答案