Python描述 資料結構與演算法 2 順序表

2021-10-10 03:20:28 字數 2000 閱讀 6280

2.1 線性表的概念和性質

2.1.1 線性表是 e

ee 中有窮個元素的組成的序列 l=(

e0,e

1,..

.,en

−1)l =(e_,e_,...,e_)

l=(e0​

,e1​

,...

,en−

1​) ,元素之間的關係 為乙個二元組的集合 r

=r=\

r=2.1.2 對於非空的線性表或者線性結構的特點:

2.1.3 線性表的抽象資料型別adt

2.1.4 線性表的兩種儲存結構(實現方式):

2.2 順序表

2.2.1 順序表中元素之間的邏輯關係通過元素在儲存區中的物理位置表示(隱式關係),元素的物理位置(記憶體位址)表示為 :loc

(ei)

=loc

(e0)

+siz

e(e)

×iloc(e_)=loc(e_)+size(e)\times i

loc(ei

​)=l

oc(e

0​)+

size

(e)×

i 2.2.2 順序表中元素儲存結構:

2.2.4 順序表基本操作的實現:

2.3 鏈結表

2.3.2 單向鍊錶

2.3.2.1 單鏈表的結點可用乙個二元組來表示(el

em,n

ext)

(elem,next)

(elem,

next

),elem

elem

elem

儲存著表的資料項,nex

tnext

next

儲存著下乙個結點的標識,則單鏈表由表節點和指向表頭的表頭變數(表頭指標)hea

dhead

head

組成。2.3.2.2 為了表示鍊錶的結束,則需要給最後節點的鏈結域設定乙個空連線。

class

lnode

:def

__init__

(self,elem,next_=

none):

self.elem = elem

self.

next

= next_

2.3.2.4 單鏈表基本操作的實現:

2.3.2.4 單鏈表的簡單變形

2.3.3 雙向鍊錶

2.3.3.1 在單鏈表節點的基礎上,擴充乙個指向前一節點的鏈結域pre

則可,可基於單鏈錶類派生。

class

dlnode

(lnode)

:def

__init__

(self,elem,prev=

none

,next_=

none

) lnode.__init__(self,elem,next_)

self.prev = prev

2.3.3.2 也可以根據需要,對雙鏈表做一些變形,例如迴圈雙鏈表

2.4 總結

2.4.1 不同鏈結表的簡單總結

2.4.2

缺點 每個元素增加了乙個鏈結域(儲存代價),雙鏈表增加兩個鏈結域

資料結構與演算法描述

資料結構是資料元素相互之間的關係,是相互之間存在一種或多種特定關係的資料元素的集合。乙個資料結構包含了以下三個方面的內容 資料元素之間的邏輯關係,也就是邏輯結構 就是給人看的 能畫出來的 資料元素及其關係在計算機記憶體中的表示,成為資料的儲存結構 就是給計算機看的 具體實現相關的 資料的運算和實現,...

2 資料結構與演算法python描述 佇列

佇列先進先出 fifo 使用單鏈表實現佇列用單鏈表實現佇列class node object definit self,value none,next none self.value value self.next next class linkedlist object definit self,...

資料結構與演算法 python語言描述之佇列

佇列就像一列排隊買東西的人,來得早,買的早,走得早,所以是一種先進先出 first in,first out fifo 的序列。應用python列表來實現佇列 class stack 建立乙個空佇列 def init self self.qlist list 判斷佇列是空的 如果佇列是空的返回tru...