建立鏈表—頭插法、尾插法—有無頭結點


1.建立鏈表-頭插法-頭結點

 1 //建立鏈表-頭插法-頭結點
 2 LinkList CreatList_head()  3 {  4     DataType x;                                 //數據
 5     LinkList p,head;                            //結點
 6     head = (LinkList)malloc(sizeof(LNode));  7     head->next = NULL;  8     head->data = 0;  9 
10     scanf("%d",&x); 11     while(x != 999) 12  { 13         p = (LinkList)malloc(sizeof(LNode)); 14         p->data = x;                     //存數據
15         p->next = head->next; 16         head->next = p; 17         head->data++;                //結點計數
18         scanf("%d",&x); 19  } 20     return head; 21 } 22 
23 //輸出鏈表-頭插法-頭結點
24 void PrintList_head(LinkList p) 25 { 26  LinkList a; 27     a = p->next; 28     while(a != NULL) 29  { 30         printf("%d ",a->data); 31         a = a->next; 32  } 33     printf("\n"); 34 }

 

2.建立鏈表-頭插法-無頭結點

 1 //建立鏈表-頭插法-無頭結點
 2 LinkList CreatList()
 3 {
 4     DataType x;                                
 5     LinkList p,head;                         
 6     head = NULL;
 7 
 8     scanf("%d",&x);
 9     while(x != 999)
10     {
11         p = (LinkList)malloc(sizeof(LNode));
12         p->data = x;
13         if(head == NULL)
14         {    head = p;
15             p->next = NULL;
16         }
17         else
18         {
19             p->next = head;
20             head = p;
21         }
22         scanf("%d",&x);
23     }
24     return head;
25 }
26 
27 
28 //輸出鏈表-頭插法-無頭結點
29 void PrintList(LinkList p)
30 {
31     LinkList a;
32     a = p;
33     while(a != NULL)
34     {
35         printf("%d  ",a->data);
36         a = a->next;
37     }
38     printf("\n");
39 }

 

3.建立鏈表-尾插法-無頭結點

 

 1 //建立鏈表-頭插法-無頭結點
 2 LinkList CCC()
 3 {
 4     DataType x;                                
 5     LinkList p,head;                         
 6     head = NULL;
 7 
 8     scanf("%d",&x);
 9     while(x != 999)
10     {
11         p = (LinkList)malloc(sizeof(LNode));
12         p->data = x;
13         p->next = head;
14         head = p;
15     
16         scanf("%d",&x);
17     }
18     return head;
19 }
20 
21 
22 //輸出鏈表-頭插法-無頭結點
23 void PPP(LinkList p)
24 {
25     LinkList a;
26     a = p;
27     while(a != NULL)
28     {
29         printf("%d  ",a->data);
30         a = a->next;
31     }
32     printf("\n");
33 }

 

4.建立鏈表-尾插法-頭結點

 

 1 //建立鏈表-尾插法-頭結點
 2 LinkList Tailhead()
 3 {
 4     DataType x;                               
 5     LinkList p,head,r;                           
 6     head = (LinkList)malloc(sizeof(LNode));
 7     head->next = NULL;
 8     r = head;
 9     scanf("%d",&x);
10     while(x != 999)
11     {
12         p = (LinkList)malloc(sizeof(LNode));
13         p->data = x;                    
14         p->next = r->next;
15         r->next = p;
16         r = p;             
17         scanf("%d",&x);
18     }
19 
20     return head;
21 }
22 //輸出鏈表-尾插法-頭結點
23 void PrintTailhead(LinkList p)
24 {
25     LinkList a;
26     a = p->next;
27     while(a != NULL)
28     {
29         printf("%d  ",a->data);
30         a = a->next;
31     }
32     printf("\n");
33 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM