資料結構與演算法之線性表(上)

2021-10-17 10:59:26 字數 1688 閱讀 2960

建議關注收藏,持續更新中……

線性表的定義:像排隊一樣具有線的性質,由零個或多個資料元素組成的有限序列(序列前驅和後繼)。(有且只有乙個)

數學定義:若將線性表記作為(a1,…,ai-1,ai,…an),則表中ai-1領先於ai,ai領先於ai+1,稱作ai-1是ai的直接前驅元素,ai+1是ai的直接後繼元素。

所以線性表元素的個數n(n>=0)定義為線性表的長度,當n=0時,稱為空表。

資料型別:指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。

原子型別:不可以再分解的基本型別。例如整型。

結構型別:由若干個型別組合而成,是可以再分解的。例如陣列。

抽象:指抽取出事物具有的普遍性的本質。它要求抽出問題的特徵而忽略非本質的細節,是對具體事務的乙個概括。抽象是一種思考問題的方式,它隱藏了複雜的細節。

抽象資料型別(adt):指乙個數學模型及定義在該模型上的一組操作。

抽象資料型別的定義僅取決於它的一組邏輯特性,而與其在計算機的內部如何表示和實現無關。

抽象的意義在於資料型別的數學抽象特性。

adt 抽象資料型別名

data

資料元素之間邏輯關係的定義(元素間的關係一對一)

endadt

線性表的順序儲存結構:通過佔位形式,依次儲存於記憶體空間實際上是對陣列進行封裝,增加了個當前長度的變數。(起始位置,最大儲存容量,當前長度)

線性表的順序儲存結構,在存、讀資料時,不管是哪個位置,時間複雜度都是o(1)。而在插入或刪除時,時間複雜度都是o(n)。說明適合元素個數比較穩定。

優點:

(1).無需為表示中間元素之間的邏輯關係而增加額外的儲存空間。

(2). 可以快速的訪問表中任意位置的元素。

缺點:

(1).插入和刪除操作需要移動大量元素。

(2). 當線性表長度變化較大時,難以確定儲存空間的容量。

(3). 容易造成儲存空間的「碎片「。

線性表的鏈式儲存結構:用一組任意的儲存單元儲存線性表的資料元素,這組儲存單元可以存在記憶體中未被占用的任意位置。比起順序儲存結構每個資料元素只需要儲存乙個位置就可以了。現在鏈式儲存結構中,除了要儲存資料元素資訊外,還要儲存它的後繼元素的儲存位址(指標)。也就是說除了儲存其本身的資訊外,還需要儲存乙個指示其直接後繼的儲存位置的資訊。

把儲存資料元素資訊的域稱為資料域,把儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱為指標或鏈。這兩部分資訊組成資料元素稱為儲存影像,稱為結點。n個結點鏈結成乙個鍊錶,即為線性表的鏈式儲存結構。因為此鍊錶的每個結點中只包含乙個指標域,所以叫做單鏈表

對於線性表來說,總得有頭尾,鍊錶也不例外,我們把鍊錶中的第乙個結點的儲存位置叫做頭指標,最後乙個結點指標為空(null)

資料結構與演算法之線性表

1.線性表的基本概念 線性表是零個或多個資料元素的有序佇列.特性 資料元素之間是有順序的 資料元素個數是有限的 資料元素的型別必須相同.2.線性表的數學定義及性質 線性表是具有相同型別的n n 0 個資料元素的有限序列 a0,a1,a2.an ai是表項,n是表長度.性質 a0是線性表中的第乙個元素...

資料結構與演算法之線性表

線性表屬於資料結構中邏輯結構中的線性結構。回憶一下,資料結構分為物理結構和邏輯結構,邏輯結構分為線性結構 幾何結構 樹形結構和圖形結構四大結構。其中,線性表就屬於線性結構。剩餘的三大邏輯結構今後會一一介紹。線性表 list 由零個或多個資料元素組成的有限序列。注意 1.線性表是乙個序列。2.0個元素...

資料結構與演算法之 線性表

01線性表 1.線性表的判斷方式就是元素有且只有乙個直接前驅和直接後繼,元素可以為空,此時叫做空表 2.抽象資料型別標準格式 adt 抽象資料型別名 data operation endadt 3.操作偽 operation endadt 4.實際問題 提問 實現兩個線性表a,b的並集操作 思路 迴...