1 #include <stdio.h>
2 #include <stdlib.h>
3 /*
4 头插法建立链表:所谓头插法,就是新来的结点每次都插在头结点后面
5 内功心法:让新来的结点先有所指向(指向头结点的下一个结点),新来的结点,有所指向不会打断原有的指向关系。
6 */
7 typedef struct node
8 {
9 int data;
10 struct node * next;
11 }NODE;
12 NODE * Createlist()
13 {
14 NODE *head = (NODE*)malloc(sizeof(NODE));
15 head->next = NULL;
16
17 NODE * cur = NULL;
18 int data;
19 printf("请输入结点数据\n");
20 scanf("%d",&data);
21
22 while(data)
23 {
24 cur = (NODE *)malloc(sizeof(NODE));//创建一个新结点
25 cur->data = data;
26 cur->next = head->next;//让新结点有所指向,指向头结点的下一个结点
27 head->next = cur;
28 scanf("%d",&data);
29 }
30
31 return head;
32 }
33 void traverList(NODE *head)
34 {
35 head = head->next;//跳过头结点,因为头结点的data域为空
36 while(head)
37 {
38 printf("%d",head->data);
39 head = head->next;
40 }
41 }
42 int main(void)
43 {
44 //建立链表
45 NODE *head = Createlist();
46 //遍历链表
47 traverList(head);
48
49 return 0;
50 }