對于Python除了基本的數(shù)據(jù)結(jié)構(gòu)外還有一些gao級數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)在進行算法運算時十分有用。下面融躍小編帶大家來了解一下。

1、棧

棧是一種線性表,只允許從一段插入和刪除數(shù)據(jù),棧的插入和刪除只能在棧頂進行。棧有兩種存儲方式,即線性存儲和鏈接存儲(鏈表)。所以每次刪除的元素都是*后進棧的元素,故棧也被稱為后進先出表。每個棧都有一個棧頂指針,他的初始值為-1,且總是指向*后一個入棧的元素。

棧有兩種處理方式,即進棧和出棧,進棧時只需要移動一個變量存儲空間,時間復(fù)雜度O(1);但是對于出棧分兩種情況,棧未滿時,時間復(fù)雜度也為O(1),但是當(dāng)棧滿時需要中心分配內(nèi)存,并移動棧內(nèi)所有數(shù)據(jù),所以此時的時間復(fù)雜度為O(n)。

Python中棧:在Python中,棧其實可以用更加簡單的列表實現(xiàn),用append在末尾進行增加元素操作,用pop刪除元素操作。

列表簡單實現(xiàn):

隊列

普通方法實現(xiàn):

隊列

2、隊列

隊列是一種特殊的線性表,和棧類似,但是允許表的前面進行刪除操作,而在標(biāo)的后面進行插入操作,也是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。分為順序隊列和循環(huán)隊列。

順序隊列

普通隊列實現(xiàn)

隊列

雙端隊列實現(xiàn)

隊列

以上就是關(guān)于Python*數(shù)據(jù)結(jié)構(gòu)的介紹,希望對你學(xué)習(xí)Python有所幫助。

特別驚喜:凡進入融躍教育七月課程秒殺群,Python原價2580元金融實戰(zhàn)課,群內(nèi)售價僅需1499元?。ㄗ⒁?,群成員特享!進群后,截圖發(fā)給客服領(lǐng)取低價購買特權(quán)?。?/p>

那么我們該如何進群呢?

(掃下方二維碼,進入專屬Q(mào)Q群,參加秒殺活動)

進入專屬Q(mào)Q群