- /*
- 單鏈表整表創建算法思路
- 1.聲明一結點p和計數器變量i
- 2.初始化一空鏈表L
- 3.讓L的頭結點的指針指向NULL,即建立一個帶頭結點的單鏈表
- 4.循環:
- 生成一新結點賦值給p
- 隨機生成一數字賦值給p的數據域p->data
- 將p插入到頭結點與前一新結點之間
- */
- #include <stdio.h>
- #include <stdlib.h>
- #define DATATYPE char
- typedef struct Node
- {
- DATATYPE data;
- struct Node *next;
- }LINKLIST;
- //尾插法創建循環單鏈表,執行輸入:abcd1234回車,就創建8個數據節點
- LINKLIST *RearCreateLinkList()
- {
- LINKLIST *LinkList_Head,*LinkList_Point,*LinkList_Rear;
- char InputChar;
- LinkList_Head = (LINKLIST *)malloc(sizeof(LINKLIST));
- LinkList_Rear = LinkList_Head;
- puts("Please input the linklist' data: ");
- InputChar = getchar();
- while(InputChar != '\n')
- {
- LinkList_Point = (LINKLIST *)malloc(sizeof(LINKLIST));
- LinkList_Point->data = InputChar;
- LinkList_Rear->next = LinkList_Point;
- LinkList_Rear = LinkList_Point;
- InputChar = getchar();
- }
- LinkList_Rear->next = LinkList_Head;
- return(LinkList_Rear);
- }
- /*遍歷循環鏈表,顯示出每個節點data域*/
- void LinkListPrint(LINKLIST *LinkList_Rear)
- {
- LINKLIST *List_Point,*LinkList_Head;
- LinkList_Head = LinkList_Rear->next;
- if(LinkList_Head == LinkList_Rear)
- {
- printf("\n鏈表為空!\n");
- return;
- }
- List_Point = LinkList_Head->next;
- puts("遍歷節點:");
- while(List_Point != LinkList_Head)
- {
- printf("%c ",List_Point->data);
- List_Point=List_Point->next;
- }
- puts("");
- /* 暫停,也可以使用system("pause"); */
- getchar();
- }
- int main()
- {
- LINKLIST *LinkList_Rear_1;
- /*尾插法創建循環單鏈表*/
- LinkList_Rear_1=RearCreateLinkList();
- /*打印循環單鏈表*/
- LinkListPrint(LinkList_Rear_1);
- return 0;
- }
Microsoft Visual C++ 6.0 下運行成功。
本文出自 “_Liang_Happy_Life__Dream” 博客,轉載請與作者聯系!