亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack

瀏覽:92日期:2022-06-20 11:56:22
前言

棧(Stack)是一種運算受限的線性表。

按照先進后出(FILO,F(xiàn)irst In Last Out)的原則存儲數(shù)據(jù),先進入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂。棧只能在一端進行插入和刪除操作。

文章內(nèi)容包含:

(1)棧的基本格式(2)壓棧 push_stack(3)出棧 pop_stack(4)取棧頂 peek_stack

一、棧的基本格式

class Stack(): def __init__ (self,size):self.size = size #棧空間大小self.top = -1 #棧中進入一個數(shù)據(jù) top 加 1self.stack = [] def display_stack(self):#棧stack的打印print(self.stack)if __name__ == '__main__': stack = Stack(5) #設(shè)定棧空間 stack.display_stack() #打印棧數(shù)據(jù)二、進棧與壓棧 push_stack

class Stack(): def __init__ (self,size):self.size = sizeself.top = -1self.stack = [] #進棧數(shù)據(jù)列表 def display_stack(self):print(self.stack) def push_stack(self,data):if len(self.stack ) >= self.size: #當數(shù)據(jù)數(shù)量大于設(shè)置的空間,則棧溢出 print('stack over flow!') returnself.stack.append(data) #沒有棧溢出就將數(shù)據(jù)追加到列表中self.top += 1 #棧中每增加一個數(shù)據(jù)就加 1if __name__ == '__main__': stack = Stack(5) stack.push_stack(0) stack.push_stack(1) stack.push_stack(2) stack.push_stack(3) stack.push_stack(4) stack.push_stack(5) #stack空間是 5,這里進棧數(shù)據(jù)時 6 個,即提示棧溢出stack over flow! stack.display_stack()

執(zhí)行結(jié)果:

詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack

三、出棧 pop_stack

class Stack(): def __init__ (self,size):self.size = sizeself.top = -1self.stack = [] #進棧數(shù)據(jù)列表 def display_stack(self):print(self.stack) def push_stack(self,data):if len(self.stack ) >= self.size: print('stack over flow!') returnself.stack.append(data)self.top += 1 def pop_stack(self):if self.top <= -1: #當top小于等于初始值 -1 時說明stack數(shù)據(jù)列表為空 print('stack is empty!') returnret = self.stack.pop() #stack數(shù)據(jù)列表不為空就取出最后進的值,列表數(shù)據(jù)數(shù)量就少一個self.top -= 1 return retif __name__ == '__main__': stack = Stack(5) stack.push_stack(0) stack.push_stack(1) stack.push_stack(2) stack.push_stack(3) stack.push_stack(4) stack.display_stack() #進棧數(shù)據(jù)有 5 個,出棧函數(shù)調(diào)用了 6 次,就出現(xiàn)了提示stack is empty! ret = stack.pop_stack() print(ret) stack.display_stack() ret = stack.pop_stack() print(ret) stack.display_stack() ret = stack.pop_stack() print(ret) stack.display_stack() ret = stack.pop_stack() print(ret) stack.display_stack() ret = stack.pop_stack() print(ret) stack.display_stack() ret = stack.pop_stack() print(ret) stack.display_stack()

執(zhí)行結(jié)果:

詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack

四、取棧頂 peek_stack

class Stack(): def __init__ (self,size):self.size = sizeself.top = -1self.stack = [] def display_stack(self):print(self.stack) def push_stack(self,data):if len(self.stack ) >= self.size: print('stack over flow!') returnself.stack.append(data) self.top += 1 def peek_stack(self):if self.top == -1: #當棧內(nèi)沒有數(shù)據(jù)時 提示 stack is empty! print('stack is empty!') returnpeek = self.stack[self.top] #棧不為空時,將棧頂?shù)臄?shù)據(jù)提取出來return peekif __name__ == '__main__': stack = Stack(5) stack.push_stack(0) stack.push_stack(1) stack.push_stack(2) stack.push_stack(3) stack.push_stack(4) stack.push_stack(5) stack.display_stack() peek = stack.peek_stack() print(peek)

執(zhí)行結(jié)果:

詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack

到此這篇關(guān)于詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack的文章就介紹到這了,更多相關(guān)python 棧stack內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日本欧美中文字幕人在线 | 成人国产片| 黄色网址www | 亚洲精品国产一区二区三区在 | 国产视频一区二区在线播放 | 欧美成人一区二区三区不卡视频 | 全免费毛片在线播放 | 在线国产观看 | 中国一级特黄 | 在线观看亚洲欧美 | 久草小视频 | 亚州免费一级毛片 | a级精品国产片在线观看 | 欧美亚洲国产精品久久高清 | 成 黄 色 激 情视频网站 | 久久青青视频 | 精品国产免费第一区二区三区日韩 | caoporen免费公开视频上传 | 久久aa毛片免费播放嗯啊 | 乱乳性高清 | 成人久久久久 | 欧美日韩一区二区不卡三区 | 欧洲三级在线观看 | 国产亚洲第一伦理第一区 | 免费又黄又硬又大爽日本 | 一级啊片 | 综合7799亚洲伊人爱爱网 | 国产人免费人成免费视频 | 91短视频网站 | 国产成人精品美女在线 | 国产五月色婷婷综合 | 亚洲码欧美码一区二区三区 | 2020阿v天堂网手机版 | 国产成人精品高清在线观看99 | 国产在视频线精品视频 | 色女影院 | 免费簧网站永久在线播放国产 | 黄色大片免费在线观看 | 国语对白91 | 欧美成人观看 | 久久亚 |