資料結構 動態建立單鏈表 C語言

2021-10-04 20:29:39 字數 1082 閱讀 1538

1.怎麼構造單鏈表的基本單元?

2.怎麼實現單鏈表「單向鏈結」的特性?

結構體b{96;a002}(已知結構體b的記憶體位址為a001,那訪問結構體a時,就可以找到b,同時b又存著c的記憶體位址,又可以找到c。。以此類推,如果定義了a、b、c、d、f單元,那就可以從a單元找到b單元,又從b單元找到c單元。。。一直找到f單元)

3.怎麼實現動態單鏈表的建立?

首先要明白什麼叫做動態建立單鏈表,就是我有乙個資料時,我就建立乙個「單元」把資料放進去。有5個資料,那就創5個單元。有7個資料,那就建立7個單元。而不是像靜態鍊錶一樣,先建立好10個單元,我只能存10個以下的資料。

並且在建立過程中,我需要建立1000個單元的單鏈表,不再需要自己乙個乙個地定義單元,由迴圈自動完成。

如果要實現迴圈自動完成,那這個迴圈需要幹這些事情:

4.怎麼自動地與上乙個記憶體單元進行連線?我用中文直接把整個建立過程給寫出來,應該讀者會更好明白。

——————分割線——————————

第三步:將head與s手動相連。

迴圈{①建立新單元,並為新單元分配記憶體位址,將位址賦值給s;

——————————分割線——————————

還不明白的讀者可以直接看**,或手動算一次過程!肯定會明白的!

**如下:

#include

#include

/*寫在前面:鍊錶的建立其實就是乙個不斷申請記憶體單元,並將這些單元通過指標連線在一起的過程,這些單元在鍊錶中稱為節點*/

typedef

struct linknode;

/*節點是通過結構體來定義的*/

/*上面這句這樣排版更形象*/

node*

creat_link

(int n)

;int

main()

node*

creat_link

(int n)

return head;

//返回頭結點位址

}

(一)C語言資料結構 建立單鏈表

定義結點的資料儲存結構 typedef struct nodenode 定義建立新結點函式,該函式為新結點開闢空間並且賦予元素值,最後函式返回建立的該新結點 node newnode 建立鍊錶函式,內包含建立新結點函式node newnode 呼叫該函式之後將該新結點接入煉表頭,可以連續建立新結點,...

c語言 資料結構 單鏈表

將線性表l a0,a1,an 1 中各元素分布在儲存器的不同儲存塊,稱為結點,通過位址或指標建立它們之間的聯絡,所得到的儲存結構為鍊錶結構,表中 ai的結點形式如圖表示 其中結點的data 域存放資料元素 ai,而 next 域是乙個指標,指向 ai的直接後繼 ai 1 所在的結點。單鏈表結構如下 ...

資料結構 單鏈表 C語言

單向鍊錶 鍊錶結點通常包含資料域與指標域,資料域用來儲存相關的使用者的資料,指標域用來指向下乙個結點。訪問單向鍊錶,需要從頭部 head 開始單向順序訪問,訪問終結於指標域 next 為null的結點 其儲存方式不同於以往的陣列,按照非連續位址方式儲存。優點 鍊錶長度可以實現動態增長,不必像陣列一樣...