棧和隊(duì)列都是線性數(shù)據(jù)結(jié)構(gòu)
棧:又稱堆棧裸卫,是一種容器仿贬,它的特點(diǎn)是只允許一端輸入、輸出數(shù)據(jù)墓贿,類似與杯子
棧的實(shí)現(xiàn)有多種诅蝶,比如說通過順序表和鏈表來實(shí)現(xiàn),無論是哪種數(shù)據(jù)存儲(chǔ)方式募壕,只要禁掉部分方法调炬,使得容器只能從一端加入、刪除數(shù)據(jù)舱馅,那么 這種結(jié)構(gòu)就是棧苔严。
棧的操作
class stack(object):
? ? def __init__(self):
????????self.__list = []
? ? def push(self,item):
????????self.__list.append(item)
????def pop(self):
????????self.__list.pop()
????def peek(self):
????????if self.__list:
????????????return self.__list[-1]
????????else:
????????????return None
? ? def is_empty(self):
????????if???? self.__list:
????????????return False
? ? ? ? else:
????????????return True
? ? def size(self):
????????????return self.__list.__len__()
隊(duì)列:只能在一端插入铝宵,另外一端刪除艺普。
用列表實(shí)現(xiàn)隊(duì)列如下
測(cè)試代碼
雙端隊(duì)列