數據結構C語言實現----創建一個鏈表


鏈表的知識點,我就不多說了

寫這篇文章也是作為一種學習筆記,為了以后復習好用

所以我就簡單說一下,我在這邊遇到的一些問題和解決方案    

  1.創建一個鏈表就是:頭指針-->結點1-->結點2-->結點3-->............

  2.新創建一個結點,比如叫它New_node,其實就是在一個地方申請了一塊空間,在這塊空間放進去一個數據和指針,我們再創建一個節點時還叫          

          New_node,雖然名字一樣,但它不會去覆蓋第一個結點,因為它又會去申請一塊空間,往里面放入指針和數據,也就是說,當第二個結點申請成功時

          第一個結點就不再叫New_node了,他只是一塊空間

  3.頭指針和第一個結點是相等的,比如說頭指針是L,那么L->date == 第一個結點里面的數據

 

代碼如下:

#include<stdio.h>
#include<stdlib.h>

typedef struct Node
{
    char date;
    struct Node *next;
    
} Node , *LinkList;

LinkList creat_linklist(int n)//創建一個長度為n的單鏈表
{
    LinkList New_node;//新節點名稱
    LinkList Tail_node;//最后一個節點名稱
    LinkList Head_node = NULL;//頭節點
    char c;

    for (size_t i = 0; i < n; i++)
    {
        printf("請輸入第%d個節點的數據:",i+1);
        scanf("%c", &c);//讀取要插入的字符
        fflush(stdin);//清空緩存
        New_node = (LinkList)malloc( sizeof(Node) );//為新節點申請一塊空間
        New_node->date = c;
        New_node->next = NULL;//順序插入的每個節點后面都沒有元素

        if ( Head_node==NULL )
        {
            Head_node = New_node;//如果插入的節點是第一個節點,就掛在頭節點后面
        }else
        {
            Tail_node->next = New_node;//若插入的節點不是第一個節點,就掛在最后一個節點的后面
        }
        Tail_node = New_node;//插入新節點后,這個已經插入的最新節點就成為了最后一個節點
    }
    return Head_node;
}


int main()
{
    LinkList L;
    int n;
    printf("請輸入鏈表節點個數:");
    scanf("%d",&n);
    fflush(stdin);//清空緩存
    L = creat_linklist(n);
    //打印單鏈表
    while ( L != NULL )
    {
        printf("%c" , L->date);
        L = L->next;
    }
    
    return 0;
}

  

運行結果:

 


免責聲明!

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



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