成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么使用Python實(shí)現(xiàn)一個(gè)堆棧結(jié)構(gòu)

今天就跟大家聊聊有關(guān)怎么使用Python實(shí)現(xiàn)一個(gè)堆棧結(jié)構(gòu),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、吉林網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為吉林等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

什么是堆棧?

堆棧是一個(gè)數(shù)據(jù)結(jié)構(gòu),其存儲(chǔ)在一個(gè)后進(jìn)/先出的方式的項(xiàng)目。這通常被稱為L(zhǎng)IFO。這與隊(duì)列形成對(duì)比,隊(duì)列以先入/先出(FIFO)方式存儲(chǔ)項(xiàng)目。

使用list創(chuàng)建一個(gè)Python堆棧

list您可能經(jīng)常在程序中使用的內(nèi)置結(jié)構(gòu)可用作堆棧。相反的.push(),你可以使用.append()新的元素添加到您的堆棧的頂部,同時(shí).pop()除去了LIFO順序的元素:

>>> myStack = []
>>> myStack.append('a')
>>> myStack.append('b')
>>> myStack.append('c')
>>> myStack
['a', 'b', 'c']
>>> myStack.pop()
'c'
>>> myStack.pop()
'b'
>>> myStack.pop()
'a'
>>> myStack.pop()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
IndexError: pop from empty list

你可以在最后的命令中看到,如果你調(diào)用空堆棧,list它將引發(fā)一個(gè)。IndexError.pop()

list有熟悉的優(yōu)點(diǎn)。你知道它是如何工作的,并且可能已經(jīng)在你的程序中使用它了。

不幸的是,list與其他數(shù)據(jù)結(jié)構(gòu)相比,您會(huì)看到一些缺點(diǎn)。最大的問題是隨著它的發(fā)展,它會(huì)遇到速度問題。list存儲(chǔ)a 中的項(xiàng)目的目的是提供對(duì)中的隨機(jī)元素的快速訪問list。在較高級(jí)別,這意味著項(xiàng)目在內(nèi)存中彼此相鄰存儲(chǔ)。

如果你的堆棧比當(dāng)前擁有它的內(nèi)存塊大,那么Python需要做一些內(nèi)存分配。這可能導(dǎo)致一些.append()呼叫比其他呼叫花費(fèi)更長(zhǎng)的時(shí)間。

還有一個(gè)不太嚴(yán)重的問題。如果您使用.insert()在末尾以外的位置向堆棧添加元素,則可能需要更長(zhǎng)時(shí)間。但是,這通常不是你要對(duì)堆棧做的事情。

下一個(gè)數(shù)據(jù)結(jié)構(gòu)將幫助您解決您看到的重新分配問題list。

使用collections.deque創(chuàng)建一個(gè)Python堆棧

該collections模塊包含deque,這對(duì)于創(chuàng)建Python堆棧很有用。deque發(fā)音為“deck”,代表“雙端隊(duì)列”。

您可以使用同樣的方法deque,你上面看到的list,.append()和.pop():

>>> from collections import deque
>>> myStack = deque()
>>> myStack.append('a')
>>> myStack.append('b')
>>> myStack.append('c')
>>> myStack
deque(['a', 'b', 'c'])
>>> myStack.pop()
'c'
>>> myStack.pop()
'b'
>>> myStack.pop()
'a'
>>> myStack.pop()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
IndexError: pop from an empty deque

這看起來幾乎與list上面的例子相同。此時(shí),您可能想知道為什么Python核心開發(fā)人員會(huì)創(chuàng)建兩個(gè)看起來相同的數(shù)據(jù)結(jié)構(gòu)。

看完上述內(nèi)容,你們對(duì)怎么使用Python實(shí)現(xiàn)一個(gè)堆棧結(jié)構(gòu)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

文章名稱:怎么使用Python實(shí)現(xiàn)一個(gè)堆棧結(jié)構(gòu)
地址分享:http://jinyejixie.com/article24/pddice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、服務(wù)器托管、全網(wǎng)營(yíng)銷推廣、定制網(wǎng)站、ChatGPT關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
新乐市| 大丰市| 永泰县| 富顺县| 介休市| 象州县| 涟源市| 神农架林区| 郎溪县| 将乐县| 阳原县| 晴隆县| 青岛市| 阿瓦提县| 衢州市| 五峰| 凤翔县| 吴江市| 大渡口区| 苍山县| 香港 | 绥芬河市| 额济纳旗| 桐梓县| 启东市| 兰考县| 庄浪县| 宁安市| 湖口县| 巨野县| 临武县| 弋阳县| 寻乌县| 始兴县| 云安县| 宜川县| 丽江市| 梁河县| 西峡县| 莱州市| 汉阴县|