2 線性表之順序表

2022-08-30 05:24:10 字數 1017 閱讀 5645

線性表是某類元素的乙個集合,還記錄著元素之間的一種順序關係。

順序表:將元素順序地存放在一塊連續的儲存區里,元素間的順序關係由它們的儲存順序自然表示。

順序表的資料元素本身連續儲存,每個元素所佔的儲存單元大小固定相同,元素的下標是其邏輯位址,而元素儲存的實體地址(實際記憶體位址)可以通過儲存區的起始位址loc (e0)加上邏輯位址(第i個元素)與儲存單元大小(c)的乘積計算而得,即:

訪問指定元素時無需從頭遍歷,通過計算便可獲得對應位址,其時間複雜度為o(1)。

乙個順序表的完整資訊包括兩部分,一部分是表中的元素集合,另一部分是為實現正確操作而需記錄的資訊,即有關表的整體情況的資訊,這部分資訊主要包括元素儲存區的容量和當前表中已有的元素個數兩項。

採用分離式結構的順序表,若將資料區更換為儲存空間更大的區域,則可以在不改變表物件的前提下對其資料儲存區進行了擴充,所有使用這個表的地方都不必修改。只要程式的執行環境(計算機系統)還有空閒儲存,這種表結構就不會因為滿了而導致操作無法進行。人們把採用這種技術實現的順序表稱為動態順序表,因為其容量可以在使用中動態變化。

python標準型別list就是一種元素個數可變的線性表,可以加入和刪除元素,並在各種操作中維持已有元素的順序(即保序),而且還具有以下行為特徵:

線性表(2) 順序表

include include define init size 100 初始長度 define listincrement 增量 define elemtype int define error 0 define ok 1 typedef structsqlist 構造空表 int initlis...

線性表之順序表

資料結構草草學過,不過沒有認真運用過。雖然知道一些最為基本的抽象型別及一些常用操作,不過叫我把這些基本的演算法寫出來我也 是寫不出來的。因為常說資料結構 演算法是乙個程式設計師最基本的素質,所以這次認真加以複習。在複習的同時我盡量將自己學習的其他的 一些基本知識比如c 中的物件導向思想也引入進來,同...

線性表之順序表

線性表 我們都知道是一種常用的資料結構,也是歷來各種考試的重點。今天抽了一些時間把線性表做了總結。線性表是n個資料元素的乙個有限序列。用公式表示為 l a1,a2,a3,a4,an 因為線性表是乙個有限的序列,所以也如上面公式所示,它的各個元素是相繼排放的。那麼它的每個相連的兩項之間都是有乙個邏輯關...