struct list *p1,*p2; { if( p1->next==NULL ) p1->next=p2; else
concatenate( ① ,p2); }
【3.49】下面程序的功能是从键盘输入一个字符串,然后反序输出输入的字符串。
#include
{ char ch; struct node *p; head = NULL;
while(( ch=getchar())!='\\n' )
{ p = (struct node *)malloc(sizeof(struct node)); p->data = ch; p->link = ① ; head = ② ; } ③ ;
while( p!=NULL ) { printf(\; p = p->link; } }
【3.50】下面程序的功能是从键盘上顺序输入整数,直到输入的整数小于0时才停止输入。然后反序输出这些整数。 #include
q = ② ; q->x = num; q->link = p; p=q; ③ ; } main()
{ printf(\; p=NULL; input();
printf(\; while( ④ )
{ printf(\; ⑤ ; }
}
【3.51】下面函数的功能是创建一个带有头结点的链表,将头结点返回给主调函数。链表用于储存学生的学号和成绩。新产生的结点总是位于链表的尾部。 struct student { long num; int score;
struct student *next; };
struct student *creat()
{ struct student *head=NULL,*tail; long num; int a; tail= ① malloc(LEN); do