问答题 设计一个算法,产生一个有4个结点的单链表,这些结点的数据域分别是a,b,c,d,且表头指针是head。
【正确答案】算法由主函数和创建单链表、输出三个函数组成。
   程序如下:
   #include<stdio.h>
   typedef struct node
   char data;
   struct node *next;
   }Node;
   Node*create()    /*创建单链表,返回一个指向链表表头
                       的指针head*/
   {
     Node*head,*q,*p;    /*定义指针变量*/
     char i;
     head=(Node*)malloc(sizeof(Node));    /*申请新的存储空间*/
     q=head;
     for(i='a';i<'e';i++)
     {
        p=(Node*)malloc(sizeof(Node));
        p->data=i;
        q->next=p;
   q=p;
   }
   q->next=NULL;
   return(head);    /*返回表头指针head*/
 }
 void print(Node*head)
 }
   Node*p;
   p=head->next;
   while(p!=NULL)
   }
     printf("/%c",p->data);    /*输出链表元素*/
     p=p->next;
   }
   printf("\n");
 }
 main()
 {
   Node*a;
   a=create();
   print(a);
 }
   输出结果为:
   a b c d
【答案解析】