Python构造栈结构
生活随笔
收集整理的這篇文章主要介紹了
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ù)值:
總結
以上是生活随笔為你收集整理的Python构造栈结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python的oop概述
- 下一篇: python isinstance函数