2 線性結構 線性表

2021-10-06 03:24:34 字數 2224 閱讀 1745

線性表是最常見、最簡單的一種線性資料結構。

線性表是n(n≥0)個具有相同特性的資料元素的有限序列,其中n表示線性表中資料元素的個數,稱為線性表的長度。

n等於0時,線性表為空表。

線性表的邏輯結構具有以下特性:

除第乙個元素a1外,每乙個資料元素都有且僅有乙個前驅。

除最後乙個元素an外,每乙個資料元素都有且僅有乙個後繼。

資料元素之間是有序的,資料元素的序號決定了它在表中的位置。

只是線性表可以進行的部分運算,並不是所有的線性表都要實現這裡列出的所有運算。

在實際應用中應根據需要實現與所要解決的問題相關的運算。

初始化線性表。

建立線性表。

清空線性表。

輸出線性表的所有元素。

求線性表的長度。

判斷線性表是否為空。

按照給定條件,查詢資料元素。

讀取線性表中的第i個元素。

在指定資料元素之前插入乙個新的資料元素。

刪除線性表中第i個資料元素。

刪除線性表中指定的資料元素。

查詢線性表中第i個元素的前驅。

查詢線性表中指定元素的前驅。

查詢線性表中第i個元素的後繼。

查詢線性表中指定元素的後繼。

將兩個線性表合併成乙個線性表。

將乙個線性表拆分成兩個或多個線性表。 查詢

更新插入

刪除順序儲存

o(1)

o(1)

o(n)

o(n)

鏈式儲存

o(n)

o(1)

o(1)

o(1)

採用順序儲存方式,則稱之為線性表的順序儲存結構,簡稱為順序表。

在順序儲存方式下,線性表中的資料元素按照邏輯順序依次儲存在一組連續的儲存單元中。

順序儲存的特點如下:

表中的資料元素存放在一組連續的儲存空間中。

資料元素在儲存空間中的順序與它們的邏輯順序相同。

根據資料元素的編號能夠計算出它的儲存位址。假設第乙個元素的位址為adr(a1),且每個資料元素佔s個位元組,則第i個資料元素ai的位址為

順序表的主要優點是易於隨機訪問,可以很方便地訪問表中的第i個資料元素。

順序表的主要缺點是需要一塊連續的儲存空間,不利於擴充;插入和刪除操作需要移動大量的資料元素,效率較低。

適用於讀多寫少的場景。

在鏈式儲存方式下,線性表的資料元素儲存在一組任意(連續或者不連續)的儲存單元中,用指向資料元素儲存位置的指標來表示資料元素之間的邏輯關係。用鏈式儲存結構儲存的線性表簡稱為鍊錶。

為了描述資料元素之間的邏輯關係,儲存乙個資料元素的時候,還需要儲存指標變數,指向它的後繼。這兩部分合起來稱為乙個結點,用來表示線性表中的乙個資料元素。

為了能夠訪問鍊錶中的資料元素,需要有乙個訪問入口。常常用乙個指標變數指向鍊錶中的第乙個結點,該指標變數稱為頭指標h。通過頭指標可以找到鍊錶的第乙個結點,然後通過各結點指標域找到下乙個結點,這樣即可訪問鍊錶中的所有結點。由於最後乙個資料元素沒有後繼,因此它的結點指標域應為空,用^或者null表示。

有時為了操作方便,需在鍊錶的第乙個結點之前新增乙個偽結點,稱為頭結點。頭結點的資料域可以為空,也可以存放一些控制資訊。頭結點的指標域存放第乙個結點的儲存位址。鍊錶的頭指標指向頭結點,且頭指標永不為空。如果鍊錶的長度為0,則頭結點的指標域為空。

在帶頭結點的迴圈鍊錶中,最後乙個結點的指標域不再為空,而是指向表頭結點。

迴圈鍊錶的主要特點是從鍊錶中任意結點出發都可以找到表中的所有結點。

在單向鍊錶中,可以很方便地訪問乙個結點的後繼。如果要訪問乙個結點的前驅,則只能從頭結點開始向後依次查詢每乙個結點,效率較低。

線性結構 線性表

線性結構 線性表 棧 佇列 串和陣列 線性結構的特點 除了第乙個元素和最後乙個元素外,每個資料元素有乙個前驅和乙個後繼,線性表是最簡單 最基本 最常用的資料結構,它有順序儲存和鏈式儲存兩種儲存方案 線性表是n個資料元素的有限序列,在表中,元素之間存在著線性的邏輯關係 特點 同一性 線性表由同類元素組...

線性結構 線性表

資料結構是 adt abstract data type,資料抽象型別 的物理實現。什麼是線性表?線性表 由同型別的資料元素構成有序序列的線性結構 兩種實現模型 順序表,鍊錶 資料物件集 n個元素構成的有序序列 初始化鍊錶 init 返回鍊錶長度 len 判斷為空 is empty 指定位置新增 i...

線性結構 線性表

由同型別資料元素構成有序序列的線性結構 list makeempty int find elementtype x,list ptrl void insert elementtype x,int i,list ptrl if i 1 i ptrl last 2 for j ptrl last j i...