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