資料結構與演算法筆記(三)線性表

2021-10-23 13:21:13 字數 938 閱讀 9265

是乙個由n的資料元素的有限序列,最常見的是鏈式表達也叫做線性鍊錶、鍊錶。再鍊錶中儲存的資料元素叫做節點,乙個節點儲存就是一條資料記錄。

每個資料節點包括2部分,第乙個是資料值,第二個是指向下乙個節點的指標。

在鍊錶的最前面,通常有乙個頭指標來指向第乙個節點,對鍊錶的最後乙個節點,沒有下乙個節點,它的指標是空指標。

迴圈鍊錶:單向鍊錶的最後乙個元素的指標指向第乙個元素

雙向迴圈鍊錶:雙向鍊錶和迴圈鍊錶結合

增加操作:

鍊錶在執行資料新增,只需要把待插入的指標指向原指標的目標,把原來的指標指向待插入的節點就行了。

a.net=b.next;//待插入的指標

p.next=a;//把原來的節點指標指向插入的資料

刪除操作:

刪除操作跟新增操作一樣

a.next=a.next.next;
查詢操作:

有兩種情況:

按照順序乙個乙個遍歷去查詢

按照順序遍歷,通過指標判斷節點的值,直到把所有節點訪問完

鍊錶在新增和刪除都比較容易,時間複雜度為o(1),但查詢就比較麻煩,時間複雜度是o(n)

線性表的價值在於對資料的儲存方式是按照順序的儲存,如果元素個數不確定,且需要經常進行資料的新增和刪除時,那麼鍊錶會比較合適。如果資料元素大小確定,刪除插入的操作不多,那麼陣列更適合。

例:1.鍊錶的翻轉

while(curr)
2.給定乙個奇數個元素的鍊錶

while(fast && fast.next && fast.next.next)
3.判斷鍊錶是否有環

資料結構與演算法 三 線性表基礎

2.1 線性表的定義和基本操作 線性表是有序且有限的 2.1.2 存在乙個唯一的被稱為 第乙個 的資料元素 2.2.2 存在乙個唯一的被稱為 最後乙個 的資料元素 2.2.3 除了第乙個元素外,每個元素均有唯一乙個直接前驅 2.2.4 除了最後乙個元素外,每個元素均有唯一乙個直接後繼。線性表 lin...

資料結構與演算法(三) 線性表一

線性表 list 由零個或多個資料元素組成的有限序列 資料型別 是指一組性質相同的值的集合及定義在此集合上的一些操作的總稱 例如在c語言中按照取值不同,資料型別可以分為兩類 原子型別 不可以再分解的基本型別,例如整型,浮點型,字元型 結構型別 由若干個型別組合而成,是可以再分解的,例如整型陣列 抽象...

資料結構 三 線性表

零個或多個資料元素的有限序列 在較複雜的線性表中,乙個資料元素可以由諾幹個資料項組成 結構 define listsize 100 線性表的最大長度 typedef int datatype typedef struct seqlist datatype是資料元素型別,可以根據需要定義,可以使用se...