資料結構 筆記3 順序表和煉表

2022-03-29 16:21:31 字數 1009 閱讀 6276

頭結點:是在鍊錶的開始結點之前附加的乙個結點,是會動態改變的

頭指標:是指指向開始結點的指標(沒有頭結點的情況下)

開始結點:鍊錶的第乙個結點,他沒有直接前趨

順序表線性表的資料元素按其邏輯此序依次存入一組位址連續的儲存單元裡,用這種方法儲存的線性表稱為順序表

線性表的第i個元素a[i]的儲存位置可用公式表示: loc(a[i]) = loc(a[1]) + (i - 1) * d

loc(a[1]) 是線性表的第乙個元素a[1]的儲存位置,通常稱之為基位址

d為每個資料元素占用的單元數

因此只要確定了線性表儲存的起始位置,線性表中任意乙個元素都可隨機訪問,所以順序表是一種隨機訪問的結構

順序表的 插入,刪除運算的時間複雜度都為o(n)

鍊錶鍊錶的結點除了儲存本身的資訊外,還有乙個儲存指示其後繼元素儲存位置的指標

鍊錶的 插入,刪除,檢索運算的時間複雜度都為o(n)

單鏈表:

1.單鏈表中每個結點的儲存位址是存放在其直接前趨結點的指標域(next)中,而開始結點無直接前趨,因此設定頭指標head指向開始結點。

建立單鏈表有兩種方法: 頭插法,尾插法

迴圈鍊錶:

1.迴圈鍊錶是鏈式儲存結構的另一種形式。

2.其特點是單鏈表中最後乙個結點(終端結點)的指標域不為空,而是指向鍊錶的頭結點,使整個鍊錶構成乙個環。

雙向鍊錶:

1.在單鏈表的結點型別中增加乙個指向其直接前趨的指標域prior,形成兩條不同方向的鏈。

順序表與鍊錶的比較

1.時間效能:對線性表的操作是經常性的查詢運算,以順序表形式儲存為宜。如果經常進行的運算時插入和刪除運算,以鏈式儲存結構為宜。

2.空間效能:空間大小可以預先確定的情況下,適合使用順序儲存結構。對資料量變化較大的動態問題,以鏈式儲存結構為好。

儲存密度的計算公式為: 儲存密度 = (結點資料域所佔空間)/ (整個結點所佔空間),一般來說結點儲存密度越大,儲存空間的利用率就越高。

順序表的儲存密度是1,而鍊錶結點的儲存密度肯定小於1.

資料結構之順序表和煉表

1.線性表 線性表 linear list 是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表 鍊錶 棧 佇列 字串 線性表在邏輯上是線性結構,也就說是連續的一條直線。但是在物理結構上並不一定是連續的,線性表在物 理上儲存時,通常以陣列和鏈式結構的形...

資料結構《順序鍊錶》

include using namespace std template class sqlist template sqlist sqlist int m template sqlist sqlist template void sqlist createlist int n template t...

資料結構 順序表與鍊錶

順序表插入操作 temp seqlist list temp賦值為乙個結構體變數 for i temp length i pos i pos是插入的位置,注意是ta是下標 temp i int node 放新結點 temp length 刪除操作 for int i pos 1 ilength i ...