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 }