線性數(shù)據(jù)結(jié)構(gòu)
棧州叠,隊(duì)列蔬将,deques,列表
其元素在數(shù)據(jù)結(jié)構(gòu)中的位置由它被添加時(shí)的順序決定。
棧
后進(jìn)先出棧 LIFO last in first out
添加操作與刪除操作總發(fā)生在同一端(頂端)
棧操作:
Stack() 創(chuàng)建一個(gè)空棧屋休,并返回空棧
push(item) 在頂部添加一個(gè)新項(xiàng)item,無返回值
pop() 從頂部刪除頂部項(xiàng)备韧,返回頂部項(xiàng)
peek() 到達(dá)頂部項(xiàng)劫樟,無返回值
isEmpty() 測試棧是否為空,返回布爾值
size() 返回棧中項(xiàng)的數(shù)量
python實(shí)現(xiàn)棧
Stack類定義是從pythonds模塊導(dǎo)入的织堂。
pythonds包括以下部分: 基本數(shù)據(jù)結(jié)構(gòu)類型叠艳,樹和圖。
下載地址
from pythonds.basic.stack import Stack
使用棧解決實(shí)際問題:
簡單括號(hào)匹配——圓括號(hào)((((()))))
( push
) pop
isEmpty來判定是否匹配括號(hào)匹配——{[[([])]]}易阳,或者[] () {} ()
十進(jìn)制轉(zhuǎn)二進(jìn)制
我們用除二法來將十進(jìn)制轉(zhuǎn)為二進(jìn)制
第一個(gè)余數(shù)成為了二進(jìn)制數(shù)的最后一個(gè)數(shù)
a_stack.push(rem) 將余數(shù)按產(chǎn)生的先后順序推入棧
a_stack.pop(rem) 將棧中存儲(chǔ)的余數(shù)附较,按后進(jìn)先出的順序推出,并添加到一個(gè)字符串中
隊(duì)列
dequeue抽象數(shù)據(jù)類型
Queue()
enqueue(item)
dequeue()
isEmpty()
size()
雙端隊(duì)列
deque 首部和尾部 添加與刪除操作非限制性
deque 抽象數(shù)據(jù)類型
Deque()
addFront(item)
addRear(item)
removeFront()
removeRear()
列表
無序列表抽象數(shù)據(jù)類型