天天看點

C語言連結清單(單向連結清單)

C語言實作連結清單

首先我們要了解連結清單,連結清單跟數組不同的是非連續存儲結構,也就是說實作連結清單需要一個指針,每用完一個節點指針指向下一個節點,直至表尾。

C語言連結清單(單向連結清單)

什麼場合使用連結清單呢?比如說我們要做一個學生資訊表,既然是學生資訊裡面就一定會有學号(int),姓名(char),成績(float),如果我們用動态數組來做的話至少一個結構體要70個位元組左右吧?

C語言連結清單(單向連結清單)

這樣隻能存放少數,比如一個班級左右的量,如果我們要存放全校學生的資訊呢?假設全校學生有10000人,70*10000就是70萬位元組,70萬位元組看起來不大,但是我們都知道數組是連續存儲的結構體,記憶體條沒有連續這麼大一塊空閑區域給你使用,這時候我們就需要連結清單,連結清單的好處就是把記憶體裡面零零散散的空間給鍊起來。那要怎麼樣才能建立一個連結清單呢?連結清單每一個結構體裡面有資料域,指針域,資料域用來存放有效資料,指針域用來指向下一個節點。

C語言連結清單(單向連結清單)

這時候連結清單的架構就寫好了。

這裡解釋一下typedef的含義,講的通俗一點它就是給資料類型重新取了個名字

C語言連結清單(單向連結清單)

接下來我們要對連結清單進行操作

C語言連結清單(單向連結清單)

最後一步把連結清單輸出

C語言連結清單(單向連結清單)

不要忘了前置聲明

C語言連結清單(單向連結清單)

運作結果

C語言連結清單(單向連結清單)

第一次寫,寫的不好多給點建議,最後謝謝觀看。