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

2021-10-10 19:55:46 字數 895 閱讀 4934

python的list是可變線性表。

len()o(1)操作

元素訪問和賦值,尾端加入和尾端刪除(包括尾端切片刪除)都是o(1)操作。

一般位置的元素加入,切片替換,切片刪除,表拼接(extend)都是o(n)操作。

pop操作預設為刪除表尾元素並將其返回o(1),指定非尾端位置為o(n)時間複雜度。

lst.clear()清除表lst所有元素o(1)操作。兩種實現方式:

a. 元素記數值(表長度)設定為0。實現簡單,操作效率高,但不能真正釋放占用的儲存。若表很長,執行操作後表內沒有元素,但仍會占用原有大塊記憶體。

b. 另分配乙個空錶用的儲存區,原儲存區直接丟棄。若表又一次增大,會頻繁更換儲存區。

lst.reverse()修改表lst自身,元素順序倒置o(n)

def

reverse

(self)

: elems = self.elements

i, j =0,

len(elems)-1

while i < j:

elems[i]

, elems[j]

= elems[j]

, elems[i]

i, j = i+

1, j-

1

sort排序, 最好的排序演算法的平均和最壞情況時間複雜度都是o(nlogn)

資料結構與演算法 線性表

概念 一種資料結構,每個結點最多只有乙個前驅結點和乙個後繼結點 類別 順序表 定長 鍊錶 變長 棧 棧頂刪除 彈棧 棧頂插入 壓棧 後進先出 lifo 佇列 隊頭刪除 出隊 隊尾插入 入隊 先進先出 fifo 線性表的抽象資料型別定義 c 1.template2.class list 棧的抽象資料型...

資料結構與演算法 線性表

n維向量 x1,x2,xn 是乙個長度為n的線性表 英文小寫字母表 a,b,c,z 是乙個長度為26的線性表 一年中的四個季節 春,夏,秋,冬 是乙個長度為4的線性表 矩陣是乙個比較複雜的線性表 學生情況登記表是乙個複雜的線性表 由若干資料項組成的資料元素稱為記錄 由多個記錄構成的線性表又稱為檔案 ...

資料結構與演算法 線性表

1.線性表 1.1 線性表的定義和基本運算 定義 線性表是具有相同資料型別的n個資料元素的有限序列。除表頭元素外,每個元素有且僅有乙個直接前驅 除表尾元素外,每個元素有且僅有乙個直接後繼。特點 個數有限 具有邏輯上的順序性 資料元素型別都相同。基本操作 初始化 求表長 按值查詢 按位查詢 插入 刪除...