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

1、棧

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

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

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

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

隊(duì)列

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

隊(duì)列

2、隊(duì)列

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

順序隊(duì)列

普通隊(duì)列實(shí)現(xiàn)

隊(duì)列

雙端隊(duì)列實(shí)現(xiàn)

隊(duì)列

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

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

那么我們該如何進(jìn)群呢?

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

進(jìn)入專屬Q(mào)Q群