1. 程式人生 > >Python 如何用列表實現棧和隊列?

Python 如何用列表實現棧和隊列?

pen 彈出 module trace 執行 方法 ace 元素 異常

1.棧結構,其實就是一個後進先出的一個線性表,只能在棧頂壓入或彈出元素。用列表表示棧,則向棧中壓入元素,可以用列表的append()方法來實現,彈出棧頂元素可以用列表的pop()方法實現。

 1 >>> x=[]            #創建一個空列表,此處表示棧
 2 >>> x
 3 []
 4 >>> x.append(a)   #壓入元素‘a‘
 5 >>> x
 6 [a]
 7 >>> x.append(b)   #壓入元素‘b‘
 8 >>> x
 9 [a
, b] 10 >>> x.pop() #彈出棧頂元素‘b‘ 11 b 12 >>> x 13 [a] 14 >>> x.pop() #彈出棧頂元素‘a‘ 15 a 16 >>> x 17 [] 18 >>> x.pop() #試圖對一個空棧做彈出操作,會報異常 19 Traceback (most recent call last): 20 File "<stdin>", line 1, in <module> 21
IndexError: pop from empty list

2.隊列,其實就是一個先進先出的線性表,只能在隊首執行刪除操作,在隊尾執行插入操作。用列表表示隊列,可以用append()方法實現在隊尾插入元素,用pop(0)方法實現在隊首刪除元素。

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

Python 如何用列表實現棧和隊列?