数据结构实验之链表二:逆序建立链表
题目描述
输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。
输入
第一行输入整数N;;
第二行依次输入N个整数,逆序建立单链表。
第二行依次输入N个整数,逆序建立单链表。
输出
依次输出单链表所存放的数据。
示例输入
10 11 3 5 27 9 12 43 16 84 22
示例输出
22 84 16 43 12 9 27 5 3 11
提示
不能使用数组!
1 #include<stdio.h> 2 #include<malloc.h> 3 struct node 4 { 5 int data ; 6 struct node *next ; 7 }; 8 struct node*creat(int n) 9 { 10 int i ; 11 struct node *p, *head ; 12 head = (struct node *)malloc(sizeof(struct node)) ; 13 head->next = NULL ; 14 for(i = 1; i <= n; i++ ) 15 { 16 p=(struct node *)malloc(sizeof(struct node)) ; 17 scanf("%d",&p->data) ; 18 p->next = head->next ; 19 head->next = p ; 20 } 21 return (head); 22 } 23 void show(struct node *head) 24 { 25 struct node *s ; 26 s=head->next; 27 while(s!=NULL) 28 { 29 if(s->next==NULL) 30 printf("%d\n",s->data); 31 else 32 printf("%d ",s->data); 33 s=s->next; 34 } 35 } 36 37 int main() 38 { 39 int a; 40 struct node *head; 41 scanf("%d",&a); 42 head=creat(a); 43 show(head); 44 45 return 0; 46 }