線性表的鏈式表示(鍊錶資料結構):
相對於線性表的順序儲存,線性表的鏈式儲存結構,邏輯上相鄰的元素在物理位置上不相鄰,便於進行插入和刪除操作,但同時也失去了順序表可以隨機訪問的優點。
線性表的鏈式表示分為三種:單鏈表,迴圈鍊錶和雙向鍊錶
(1) 單鏈表
元素的儲存單元可以是連續的,也可以不是連續的
每乙個結點有兩部分組成:資料域和指標域
資料域:儲存該資料元素的資訊
指標域:儲存直接後繼元素位置的資訊
資料類的定義如下:
class node
}單鏈表中,第乙個結點之前會附設乙個結點,稱為,頭結點;頭結點的資料域可以不儲存任何資訊,也可以儲存線性表的長度等附加資訊,其指標域儲存第乙個元素的儲存位置
最後乙個結點的指標域為null
在進行查詢時,迴圈條件是:p.next != null
插入或刪除指定元素或某一位置元素的時間複雜度為o(n)
(2) 迴圈鍊錶
與單鏈表的不同之處是:最後乙個結點的指標域指向頭結點,即儲存的是頭結點的指標位置,整個鍊錶形成乙個環。
在進行查詢時,判斷的條件是p.next=頭結點
(3) 雙向鍊錶
除了資料域之外,雙向鍊錶有兩個指標域,乙個指標儲存該結點的前乙個結點的位置,即,該結點前驅的位置,另乙個指標儲存該結點後乙個結點的位置,即,該結點後繼的位置
頭結點的前驅為最後乙個元素,後繼為第乙個元素
最後乙個結點的後繼為頭結點
插入或刪除指定元素或某一位置元素的時間複雜度為o(n)
線性表 鏈式表示形式
好久沒熬夜了 兩天嘿嘿嘿 好久沒摸鍵盤了 乙個星期左右吧 藉著興奮勁,來寫寫部落格,記錄學習的瞬間 剛剛查了一些其他的資料和文章,發現很多都是直接搬過來的,而且還有好多搬錯了 先來看看線性表的定義 乙個線性表是n個資料元素的有限序列,可以表示成 2,3,6,8,9 在稍複雜的線性表中,乙個資料元素可...
線性表鏈式表示和實現
1 我們把儲存資料元素資訊的域稱為資料域,把儲存直接後繼的域稱為指標域。指標域中儲存的資訊稱為指標或鏈。元素 資料元素映像 指標 指示後繼元素儲存位置 結點 表示資料元素 2 n個結點 ai 1 i n 鏈成乙個鍊錶,即為線性表。3 鍊錶中第乙個結點的儲存位置叫做頭指標。4 線性表最後乙個指標為空 ...
線性表鏈式儲存
線性表鏈式儲存結構的建立 刪除最小值結點 值唯一 刪除某個指定值 不唯一 就地逆置 反向輸出 遞增排序 刪除重複結點 根據奇偶序號劃分成兩個帶頭結點的單鏈表。include stdio.h include stdlib.h typedef struct lnode lnode,llist void ...