程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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.     DATATYPE  data; 
  18.     struct Node *next; 
  19. }LINKLIST; 
  20.   
  21. //尾插法創建循環單鏈表,執行輸入:abcd1234回車,就創建8個數據節點 
  22. LINKLIST *RearCreateLinkList() 
  23.     LINKLIST *LinkList_Head,*LinkList_Point,*LinkList_Rear; 
  24.     char InputChar; 
  25.   
  26.     LinkList_Head = (LINKLIST *)malloc(sizeof(LINKLIST)); 
  27.     LinkList_Rear = LinkList_Head; 
  28.      
  29.     puts("Please input the linklist' data: "); 
  30.     InputChar = getchar(); 
  31.     while(InputChar != '\n') 
  32.     { 
  33.         LinkList_Point = (LINKLIST *)malloc(sizeof(LINKLIST)); 
  34.         LinkList_Point->data = InputChar; 
  35.         LinkList_Rear->next = LinkList_Point; 
  36.         LinkList_Rear = LinkList_Point; 
  37.         InputChar = getchar(); 
  38.     } 
  39.     LinkList_Rear->next = LinkList_Head; 
  40.     return(LinkList_Rear); 
  41.   
  42. /*遍歷循環鏈表,顯示出每個節點data域*/  
  43. void LinkListPrint(LINKLIST *LinkList_Rear) 
  44.     LINKLIST *List_Point,*LinkList_Head; 
  45.     LinkList_Head = LinkList_Rear->next; 
  46.   
  47.     if(LinkList_Head == LinkList_Rear) 
  48.     { 
  49.         printf("\n鏈表為空!\n"); 
  50.         return; 
  51.     } 
  52.   
  53.     List_Point = LinkList_Head->next; 
  54.     puts("遍歷節點:"); 
  55.     while(List_Point != LinkList_Head) 
  56.     { 
  57.         printf("%c  ",List_Point->data); 
  58.         List_Point=List_Point->next; 
  59.     } 
  60.     puts(""); 
  61.     /* 暫停,也可以使用system("pause"); */  
  62.     getchar();  
  63.   
  64.   
  65. int main() 
  66.     LINKLIST *LinkList_Rear_1;  
  67.     /*尾插法創建循環單鏈表*/  
  68.     LinkList_Rear_1=RearCreateLinkList(); 
  69.     /*打印循環單鏈表*/  
  70.     LinkListPrint(LinkList_Rear_1); 
  71.      
  72.     return 0;  

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

 

 

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

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