Python 如何用列表實現棧和佇列

2021-08-10 08:31:40 字數 1126 閱讀 9374

前面學習了列表的基礎知識,本著學以致用的原則,就想著如何通過列表來實現資料結構棧和佇列。

>>> x=            #建立乙個空列表,此處表示棧

>>> x

>>> x

['a']

>>> x

['a', 'b']

>>> x.pop() #彈出棧頂元素'b'

'b'>>> x

['a']

>>> x.pop() #彈出棧頂元素'a'

'a'>>> x

>>> x.pop() #試圖對乙個空棧做彈出操作,會報異常

traceback (most recent call last):

file "", line 1, in indexerror: pop from empty list

>>> x=

>>> x

['a']

>>> x

['a', 'b']

>>> x.pop(0)

'a'>>> x.pop(0)

'b'>>> x.pop(0)

traceback (most recent call last):

file "", line 1, in indexerror: pop from empty list

細心觀察克制,上面是把列表的最左邊當做了佇列的首,把最右邊當做了尾(左首右尾)。也可以通過列表實現相反的佇列,右首左尾。用insert(0,...)方法實現隊尾插入元素,用pop()實現隊首刪除元素。(這樣做是有意義的,人們習慣於把佇列右邊作為首的)

>>> x=

>>> x.insert(0,'a')

>>> x

['a']

>>> x.insert(0,'b')

>>> x

['b', 'a'] #是不是發現列表順序和上面正好相反

>>> x.pop()

'a'>>> x.pop()

'b'

備註:當然也可以使用insert(0,...)和pop(0)兩個方法實現棧,不過這樣不太符合人們的直觀感受。

Python如何用列表構建棧結構

1.1 問題 建立stack.py指令碼,要求如下 棧是乙個後進先出的結構 編寫乙個程式,用列表實現棧結構 需要支援壓棧 出棧 查詢功能 1.2 方案 建立空列表儲存資料,建立4個函式,分別實現壓棧 出棧 查詢以及判斷函式呼叫的方法。此程式需要注意的是堆疊的結構特點,先進後出,後進先出 1.呼叫sh...

如何用C 實現棧

簡單定義 棧就是一種只允許在表尾進行插入和刪除操作的線性表 舉乙個生活中的例子 我在乙個儲物箱中,堆了一堆衣服,我的一件球衣在最下面,而我要拿這件衣服,就意味著我必須將上面的衣服全部拿出來才可以,但是由於箱子只有乙個口,我也只能從上面拿東西,心裡還默默想著,當初就不該將球衣早早的放進去,導致結果就是...

如何用棧實現佇列功能以及如何用佇列實現棧功能

棧實現佇列的基本思路 構造兩個棧,其中乙個用來存放存進來的資料,另外乙個用來倒置其中的資料實現輸出。public static class twostacksqueue public void add int pushint public intpoll else if stackpop.empty...