日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python构造栈结构

發(fā)布時間:2025/3/20 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python构造栈结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

棧:是一種先進后出的數(shù)據(jù)結構;本片文章,我們用python的面向對象來構造這樣的數(shù)據(jù)結構。

棧中的每一個數(shù)據(jù)除了存儲當前的數(shù)值外,還存儲著當前數(shù)值下一個數(shù)據(jù)的類型(注意不是下一個數(shù)據(jù)的數(shù)值)。

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class Node(object): # 棧中的每一個結點有兩個屬性,一個是當前的數(shù)值,另一個是下一個節(jié)點的值。def __init__(self,value=None):self.value = valueself.next = 0class stack(object):def __init__(self):self.node = Node()self.lstack = [self.node, ]def push(self,elem): # 定義入棧的函數(shù)oldnode = self.lstack[0]item = Node(elem) # 把這個數(shù)值實例化為棧中的數(shù)據(jù)類型if oldnode.value == None: # 如果是第一個值,則當前value為當前值,next值為0; 這里的第一個值是要放入棧底的,因此它的next值W為0!item.value = elemitem.next = 0 else:item.value = elem # 如果不是第一個值,則當前值為當前值,next值為緊鄰的那個值的數(shù)據(jù)類型,item.next = oldnodeself.lstack.append(item) # 把新的數(shù)據(jù)節(jié)點加入到lstack列表self.lstack.pop(0) # 然后去除列表中的上一次的數(shù)據(jù)節(jié)點,最后一個節(jié)點加入之后,lstack列表中存儲的就是最上面的那個節(jié)點類型。def popitem(self): # 定義出棧的函數(shù)upnode = self.lstack[0]print(upnode.value)self.lstack.append(upnode.next)self.lstack.pop(0)

向棧中壓入三個數(shù)值:

#壓入元素 s = stack() s.push("A") s.push("B") s.push("C") #取出元素 s.popitem() s.popitem() s.popitem()---------------執(zhí)行結果---------------C B A

總結

以上是生活随笔為你收集整理的Python构造栈结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。