1- 什麼是棧?
乙個棧是乙個項的有序集合。新增項和移除項都在同一端,這一端被稱為『棧頂』。另一端被稱為『棧底』。
棧使用的是後進先出原則即『lifo』原則,也就是說最新新增的項在移除時是第乙個被移除的。在日常生活中有很多例子比如說在餐廳中有一堆餐盤,我們拿走的是最頂上的乙個,排在我們後面的人將拿走下乙個。
例如:有乙個棧,棧內元素為(棧底——棧頂)1,2,3,4,5,6,7,8 取出5的順序為
次數 元素 棧內元素
第一次 取出棧頂元素 8 1,2,3,4,5,6,7
第二次 取出棧頂元素 7 1,2,3,4,5,6
第三次 取出棧頂元素 6 1,2,3,4,5
第四次 取出棧頂元素51,2,3,4
第四次取到了棧內元素5
2- 棧的基本操作
1stack**class
stack():2#
初始化棧
3def
__init__
(self):
4 self.__items =56
#將新項新增到堆疊的頂部。它需要引數item並且沒有返回值。
7def
push(self,item):
8 self.__items910
#從棧頂刪除項它不需要引數,返回item,棧被修改。
11def
pop(self):
12if self.__items ==:
13return
14return self.__items
.pop()
1516
#返回棧頂的項,不刪除它。它不需要引數。堆疊不被修改。
17def
peek(self):
18if self.__items ==:
19return
20return self.__items[len(self.__items)-1]
2122
#測試看棧是否為空。它不需要引數,返回乙個布林值。
23def
isempty(self):
24return self.__items ==
2526
#返回棧的專案數。它不需要引數,返回乙個整數。
27def
size(self):
28return len(self.__items)
棧方法:
Python 基本資料結構
列表是python裡的內建的型別之一,可以新增和刪除其中的元素。如 role sam 33 dean 37 可以列表中包含列表,同一列表中包含不同型別的資料。下面介紹列表的一些通用操作,關於list的其他用法,可以通過help list 檢視。a 2,13,12,41,17,23 a 1 列表從0開...
python 基本資料結構
1.切片 sname start?step sname 為序列名稱 start 不指定 預設為0 包含 end 不包含 step 不指定 預設為1 2.序列可以通過 相加 song1 a,b song2 c,d print song1 song2 3.序列相乘 song1 a print song1...
python中基本資料結構(四)
二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹的建立 建立二叉樹節點 class treenode object 初始化節點 def init self,data,left node none,right no...