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

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

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