def push(self,data):
node=Node(item,self.__top)
node.next=self.__top
self.__top=node
self._size+=1
二、弹出栈顶元素
def pop(self)
if self.is_empty():
print('栈为空')
else:
value=self.top.data
self.__top=self.__top.next
self._size-=1
return value
三、返回栈顶元素
def top(self):
if self.is_empty():
print('栈顶元素为空')
else:
return self.__top.data
四、判断栈是否为空
def is_empty(self)
return self.__size==0
五、判断栈中数据数量
def size(self):
return self.__size
代码块
class Node:
def __init__(self,data,_next=None):
self.data=data #数据域
self.next=_next #指针域
class Stack:
def __init__(self):
#以链表的第一个节点作为栈顶
self.__top=None #栈顶元素,
self._size=0 #栈内元素个数
def push(self, item):
# 添加一个元素到栈顶
# 让self.top指向新的节点
# 让新的节点的next指向原本的节点
#self.__top = Node(item, self.__top)
node=Node(item,self.__top)
node.next=self.__top
self.__top = node
self._size+=1
def pop(self):
# 要判断栈是否为空
if self.is_empty():
raise ValueError('栈为空')
value=self.__top.data
#让栈顶元素指向下一个节点
self.__top=self.__top.next
self._size-=1
return value
def top(self):
# 要判断栈是否为空
if self.is_empty():
raise ValueError('栈为空')
return self.__top.data
def is_empty(self):
return self._size == 0
#return self.__top == None
def size(self):
return self._size
if __name__ == '__main__':
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
stack.push(4)
print(stack.size())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.is_empty())
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123553.html