栈作为一种数据结构,是一种只能在一端进行插入和删除操作。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)
定义一个实例属性 top
三个实例属性:
- 栈顶元素peek()
- 出桟pop()
- 入栈push()
# encoding=utf-8
class Node(object):
def __init__(self,val):
self.val = val
self.next = None
class Stack(object):
def __init__(self):
self.top = None
#入栈
def push(self,n):
packNode = Node(n)
packNode.next = self.top
self.top = packNode
return packNode.val
#出栈
def pop(self):
if self.top == None:
return None
else:
tmp = self.top.val
self.top = self.top.next
return tmp
#栈顶元素
def peek(self):
if self.top == None:
return None
else:
return self.top.val
#可以增加一个统计的长度
if __name__ == '__main__':
s = Stack()
s.push(1)
s.push(2)
s.push(3)
print (s.pop())
print (s.pop())
print (s.pop())
print (s.pop())
本文介绍了栈这一数据结构的基本概念和操作,包括其先进后出的特性。通过定义一个`Stack`类,实现了栈的入栈(push)、出栈(pop)和查看栈顶元素(peek)的功能。示例代码中展示了如何使用这个栈类进行元素的添加和移除操作。
689

被折叠的 条评论
为什么被折叠?



