資料結構 知識點3 順序表

2021-10-24 02:35:00 字數 2707 閱讀 3552

二、順序表的結構

3、順序表的操作

三、python中的順序表

儲存一組相同型別的資料,為了方便快速取得,將他們按照順序存放在一起。

陣列是實際程式設計中順序表的具體體現

比如:儲存了1,2,3,元素的乙個順序表

在記憶體中儲存時,1的索引為0,假如實體地址為0x23;

因為1為整數,則儲存單元為4個位元組,32位,因此

2的索引為1,實體地址為0x23+4=0x27;

同理;3的索引為2,實體地址為0x27+4=0x31

順序表的基本結構:

邏輯位址(索引)

元素儲存

實體地址0e0

l01e1l0+1xc2e2

l0+2xc3e3

l0+3xc

…………

……n-1

e(n-1)

l0+(n-1)xc

c:表示不同資料型別對應的儲存單元

儲存一組不同型別的資料時,為了方便快速取得,將他們的位址按照順序表的基本結構存放在一起,需要取某個資料時,根據索引,得到資料的實體地址存放的位址,根據這個位址找到資料存放的的實體地址,將實體地址所在位置指向資料

邏輯位址

實體地址存放的位址

實體地址

指向資料0l0

0x23

->e01

l0+1xc

0x55

->e1

2l0+2xc

0x809

->

e2……

…………

…………

n-1l0+(n-1)xc

***->

e(n-1)容量8

表示當前順序表一共可以容納多少元素

元素個數

4表示當前順序表目前有的元素個數

03278

表示第0個索引儲存的資料是165

244398745

67乙個順序表的完整資訊包括兩部分:

表頭資訊:包括元素儲存區的容量和當前表中已有的元素個數

資料區:表中的元素的集合

將表頭和資料區放在一起的結構

maxnum

元素儲存區84

表頭部分和元素儲存區分開的結構;

其中表頭部分除了包括元素儲存區的容量和當前表中一儲存的元素個數外,還有元素儲存區的位址資訊

maxnum元素儲存區的位址84

位址位址指向資料儲存的地方

i、元素儲存區的替換

ii 、元素儲存區擴充:

採用分離式結構的順序表在擴充儲存區時,可以不改變表物件的前提下對資料儲存區進行擴張,即所有使用這個表的地方都不必修改,因此不會影響使用者對錶的使用;

因為其容量可以在使用中動態變化,把使用這種技術的順序表稱為動態順序表

擴充的兩種策略:

每次擴充增加固定數目的儲存位置,如每次擴充增加10個元素位置。這種策略稱為線性增長

每次擴充容量加倍,如每次擴充增加一倍儲存空間

i、給順序表插入111這個元素

a、尾端加入元素,不需要移動其他元素,直接插入,因此時間複雜度為o(1)

b、非保序的加入元素,即將111放在索引1的位置,將索引1原來的元素693移動到尾端,演算法步驟為2,所以時間複雜度為o(1)(由於不保序,很少使用

c、保序的元素插入,將111插入到索引1的位置,其他元素按照原來順序,都向後移動一位,最壞演算法步驟為n,所以時間複雜度為o(n)

ii、刪除元素

a、刪除表尾元素,時間複雜度為o(1)

b、非保序的元素刪除(不常見),比如刪除111,刪除後,將表尾元素154放到原來111的位置,因此時間複雜度為o(1)

c、保序的元素刪除,通插入元素一樣,刪除後,需要將後面的元素,按順序全部向前移動一位,因此時間複雜度為o(n)

python中的列表和元組兩種型別的資料採用了順序表的實現技術(元組是不可變型別,即不變的順序表)

列表是一種元素個數可變的線性表,可以加入和刪除元素,並在各種操作中維持已有元素的順序(即保序),具有以下行為特徵:

允許任意加入元素,在不斷加入元素的過程中,表物件的標識(函式id得到的值)不變

python的官方實現中,列表實現採用了如下的策略:

資料結構瑣碎知識點3

1 資料邏輯結構包括 線性結構 樹形結構 和 圖狀結構 三種型別,樹形結構和圖狀結構合稱 非線性結構 2 資料的邏輯結構分為 集合 線性結構 樹形結構 和 圖狀結構 4種。4 線性結構中元素之間存在 一對一 關係,樹形結構中元素之間存在 一對多 關係,圖形結構中元素之間存在 多對多 關係。5 在樹形...

資料結構 知識點

定義 度 兒子數 分支節點 除了根和葉子的節點 根的深度為1 資料結構的分類 資料結構分為邏輯結構和物理結構。邏輯結構 表現資料之間的關係的一種資料結構,分為線性結構和非線性結構。物理結構 表現資料如何儲存的一種資料結構,通常分為順序結構 鏈式結構 索引結構和雜湊結構。有序表,也叫有序線性表,資料按...

資料結構知識點

1 線性結構與非線性結構 線性結構 線性表,棧,隊 乙個根節點,最多乙個前節點乙個後節點 首節點無前節點,尾接點無後節點 非線性結構 樹形結構,圖形結構 線性表 由一組資料元素構成,資料元素的位置只取決於自己的序號 陣列 棧 限定只能在表的一端進行插入和刪除,先進後出,只能在棧頂進出 佇列 只能在表...