資料結構筆記(一) 鍊錶

2021-08-22 05:59:24 字數 1348 閱讀 4097

鍊錶是一種動態的資料結構,其中所有資料元素(data elements)彼此鏈結。鍊錶是節點的集合,每個節點包含兩部分資料(data)部分和位址(address)部分。

動態資料結構:鍊錶是種動態資料結構,在程式執行期間可以隨意增加或減少節點。

沒有記憶體浪費:鍊錶是在程式執行時,主動分配記憶體的因此不存在記憶體浪費問題。

可任意插入和刪除資料:在鍊錶中,可以指定刪除和新增任意乙個節點。

單鏈表的結構定義如下:

/*單鏈表的結構*/

typedef struct node

node,*linklist;

單鏈表增添、刪除、查詢等功能的實現:由於單鏈表是一種線性表,所以可以通過指標域的遍歷來完成對資料物件的操作。

/*初始化單鏈表*/

linklist newlinklist()

/*獲取單鏈表的長度*/

int length(linklist head)

return cnt;

}/*獲取指定位置的單鏈表*/

我們將單鏈表的尾指標指向起始節點,那麼所有的節點將會形成乙個環形結構,我們將之稱為迴圈鍊錶(circular linked list)

我們將單鏈表的節點中再新增乙個指標指向前乙個節點,那麼就形成了乙個可以前後節點相互訪問的鍊錶,我們將之稱為雙向鍊錶(doubly linked list)

雙向表的結構定義如下:

/*雙向鍊錶的結構*/

typedef struct dnode

dnode, *dlinklist;

資料結構筆記 鍊錶

鍊錶是線性表的鏈式儲存結構的實現。鍊錶所占用的記憶體並非連續的,需要通過指標依次連線。單鏈表通常有兩種形式 帶頭結點和不帶頭結點的單鏈表。相比較前者能夠簡化操作,便於實現。template typename t struct node 在這之前先建立乙個結點的結構體模板。template class...

資料結構 鍊錶 一

鍊錶和陣列作為演算法中的兩個基本資料結構,在程式設計過程中經常用到。儘管兩種結構都可以用來儲存一系列的資料,但又各有各的特點。陣列的優勢,在於可以方便的遍歷查詢需要的資料。在查詢陣列指定位置 如查詢陣列中的第4個資料 的操作中,只需要進行1次操作即可,時間複雜度為o 1 但是,這種時間上的便利性,是...

資料結構(一)鍊錶

include using namespace std struct linknode 鍊錶結點的定義 void createlink linknode head 後插法建立鍊錶演算法 void show linknode head 遍歷鍊錶演算法 void deletelinknode linkn...