鍊錶學習 靜態鍊錶

2021-10-12 10:12:33 字數 1045 閱讀 5072

struct linknode

;

鍊錶在指定位置插入與刪除元素不需要移動元素,只需要修改指標即可,而陣列刪除與加入元素則需要移動後面的元素,鍊錶相對於陣列來講,則多了指標域空間開銷,拿到鍊錶第乙個節點就相當於拿到整個鍊錶

鍊錶的分類:靜態鍊錶,動態鍊錶

單向鍊錶,雙向鍊錶,迴圈鍊錶,單向迴圈鍊錶,雙向迴圈鍊錶

陣列:一次分配一塊連續的儲存空間

優點:隨機訪問元素效率高

缺點:(1)需要分配一塊連續的儲存區域(很大區域,有可能分配失敗)

(2)刪除和插入某個元素效率低

鍊錶:無需一次性分配一塊連續的記憶體區域,只需分配n快節點儲存區域,通過指標建立關係

優點:(1)不需要一塊連續的儲存區域

(2)刪除和插入某個元素效率高

缺點:隨機訪問元素效率低

#include

//鍊錶結點定義

struct linknode

;void

test()

;struct linknode node2 =

;struct linknode node3 =

;struct linknode node4 =

;struct linknode node5 =

;struct linknode node6 =

; node1.next =

&node2;

node2.next =

&node3;

node3.next =

&node4;

node4.next =

&node5;

node5.next =

&node6;

//如何遍歷鍊錶:定義乙個輔助指標

struct linknode* pcurrent =

&node1;

while

(pcurrent !=

null)}

intmain()

(本文是個人學習心得,如有錯誤還請多多指出)

靜態鍊錶(陣列 鍊錶和靜態鍊錶的操作)

因為是線性表,不能只講鍊錶,所以今天提一下靜態鍊錶以及陣列 鍊錶 靜態鍊錶之間的對比。陣列基本結構沒得說,插入和刪除的操作也是有的 雖然看著不比較詭異 一般是動態分配乙個足夠長的,記錄有多少個元素後對這個個數進行加減,而不是每插入乙個就動態分配 其實這樣也行,要是不怕麻煩的話 另外在插入刪除操作之後...

靜態鍊錶和迴圈鍊錶

所謂靜態鍊錶,與指標型描述的鍊錶 動態鍊錶 的區別在於靜態鍊錶借用一維陣列來描述鍊錶.這種儲存型別需要預先分配乙個較大的空間.其結構如下圖 與動態鍊錶操作時最大的區別在於 靜態鍊錶需由使用者自己實現malloc和free函式.為了辨明陣列中哪些分量未被使用,解決的辦法是 將所有未被使用過的以及被刪除...

靜態鍊錶和動態鍊錶

鍊錶分為兩種 動態和靜態 動態的結合相關函式能動態開闢記憶體,特點就是不會浪費記憶體單元 靜態鍊錶則沒有這個優點。靜態鍊錶和動態鍊錶是線性表鏈式儲存結構的兩種不同的表示方式。靜態鍊錶的初始長度一般是固定的,在做插入和刪除操作時不需要移動元素,僅需修改指標。動態鍊錶是相對於靜態鍊錶而言的,一般地,在描...