程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 數據結構之單鏈表尾插法創建-RearCreate

數據結構之單鏈表尾插法創建-RearCreate

編輯:關於C語言

 

  1. /* 
  2. 單鏈表整表創建算法思路 
  3. 1.聲明一結點p和計數器變量i 
  4. 2.初始化一空鏈表L 
  5. 3.讓L的頭結點的指針指向NULL,即建立一個帶頭結點的單鏈表 
  6. 4.循環: 
  7.     生成一新結點賦值給p 
  8.     隨機生成一數字賦值給p的數據域p->data 
  9.     將p插入到頭結點與前一新結點之間 
  10. */ 
  11.   
  12.   
  13. #include <stdio.h> 
  14. #include <stdlib.h> 
  15. #define DATATYPE char 
  16. typedef struct Node 
  17. { 
  18.     DATATYPE  data; 
  19.     struct Node *next; 
  20. }LINKLIST; 
  21.   
  22. //尾插法創建循環單鏈表,執行輸入:abcd1234回車,就創建8個數據節點 
  23. LINKLIST *RearCreateLinkList() 
  24. { 
  25.     LINKLIST *LinkList_Head,*LinkList_Point,*LinkList_Rear; 
  26.     char InputChar; 
  27.   
  28.     LinkList_Head = (LINKLIST *)malloc(sizeof(LINKLIST)); 
  29.     LinkList_Rear = LinkList_Head; 
  30.      
  31.     puts("Please input the linklist' data: "); 
  32.     InputChar = getchar(); 
  33.     while(InputChar != '\n') 
  34.     { 
  35.         LinkList_Point = (LINKLIST *)malloc(sizeof(LINKLIST)); 
  36.         LinkList_Point->data = InputChar; 
  37.         LinkList_Rear->next = LinkList_Point; 
  38.         LinkList_Rear = LinkList_Point; 
  39.         InputChar = getchar(); 
  40.     } 
  41.     LinkList_Rear->next = LinkList_Head; 
  42.     return(LinkList_Rear); 
  43. } 
  44.   
  45. /*遍歷循環鏈表,顯示出每個節點data域*/  
  46. void LinkListPrint(LINKLIST *LinkList_Rear) 
  47. { 
  48.     LINKLIST *List_Point,*LinkList_Head; 
  49.     LinkList_Head = LinkList_Rear->next; 
  50.   
  51.     if(LinkList_Head == LinkList_Rear) 
  52.     { 
  53.         printf("\n鏈表為空!\n"); 
  54.         return; 
  55.     } 
  56.   
  57.     List_Point = LinkList_Head->next; 
  58.     puts("遍歷節點:"); 
  59.     while(List_Point != LinkList_Head) 
  60.     { 
  61.         printf("%c  ",List_Point->data); 
  62.         List_Point=List_Point->next; 
  63.     } 
  64.     puts(""); 
  65.     /* 暫停,也可以使用system("pause"); */  
  66.     getchar();  
  67. } 
  68.   
  69.   
  70. int main() 
  71. { 
  72.     LINKLIST *LinkList_Rear_1;  
  73.     /*尾插法創建循環單鏈表*/  
  74.     LinkList_Rear_1=RearCreateLinkList(); 
  75.     /*打印循環單鏈表*/  
  76.     LinkListPrint(LinkList_Rear_1); 
  77.      
  78.     return 0;  
  79. } 

 Microsoft Visual C++ 6.0 下運行成功。

 

 

本文出自 “_Liang_Happy_Life__Dream” 博客,轉載請與作者聯系!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved