python用單鏈表實現棧

2021-09-11 02:32:23 字數 1295 閱讀 8291

class lnode:

"""節點的類"""

def __init__(self,x):

self.data = x

self.next = none

class mystack:

"""用鍊錶實現棧"""

def __init__(self):

self.data = none

self.next = none

# 判斷棧是否為空

def isempty(self):

return self.next == none

#獲取棧中元素個數

def size(self):

s = 0

p = self.next

while p != none:

p = p.next

s += 1

return s

#取得棧頂元素

def top(self):

if self.next != none:

return self.next.data

else:

print("棧已經為空,無法提取元素")

return none

def pop(self):

if self.next != none:

tmp = self.next

self.next = self.next.next

print("彈棧成功")

return tmp.data

else:

print("棧已經空了,無法彈出")

return none

#把e壓入棧頂

def push(self, e):

p = lnode(e)

p.next = self.next

self.next = p

#測試棧的使用

if __name__ == "__main__":

s = mystack()

s.push(4)

s.push(5)

print("棧頂元素為:%s" % s.top())

print("棧的長度為:%s" % s.size())

s.pop()

print("棧頂元素為:%s" % s.top())

print("棧的長度為:%s" % s.size())

s.pop()

print("棧頂元素為:%s" % s.top())

print("棧的長度為:%s" % s.size())

Python 單鏈表實現棧操作

單鏈表實現棧操作,規定棧頂在鍊錶的頭部 如下 coding utf 8 class linkedstack class node def init self,element,next self.element element self.next next 棧方法 def init self self...

單鏈表實現棧

程式設計實現下面的棧頂操作 cpp view plain copy print?class mydata 解析 顯然這裡需要實現棧的3種基本操作,即進棧 出棧以及判空。為了方便起見,使用單鏈表結構實現棧並且使用類的形式來定義站內及其節點。首先是節點類和棧類的具體定義,程式 如下 cpp view p...

用單鏈表模擬棧模型

include include struct node typedef struct node ptrtonode typedef ptrtonode stack struct node stack createstack void head next list return head int is...