概念
栈,也称堆栈,我们可以将其视为一种容器,容器中存放元素,可进行存入、访问和删除。
特点
- 只能在容器的一端(即栈顶top)进行存入数据(push)和输出数据(从容器中删除数据pop)的运算。
- 没有位置概念,确保任何时候可以访问、删除的元素都是最后一个存入容器的元素。
- 由于栈数据只允许从一端进行操作,所以遵循先进后出、后进先出的原理(LIFO,Last In First Out)。
栈的实现
栈的操作
- Stack() 创建一个新的空栈
- push(item) 添加一个新的元素item到栈顶
- pop() 弹出栈顶元素,即删除
- peek() 返回栈顶元素,与pop()区别在于peek不执行删除,pop执行删除,两者都是返回栈顶元素
- is_empty() 判断栈是否为空
- size() 返回栈的元素个数
class Stack():
"""栈"""
def __init__(self):
self.items = []
def is_empty(self):
"""判断栈是否为空"""
return self.is_empty()
def push(self,item):
"""加入元素"""
self.items.append(item)
def pop(self):
"""从栈顶删除元素"""
return self.items.pop()
def peek(self):
"""返回栈顶元素"""
return self.items[len(self.items)-1]
def size(self):
"""返回栈的大小"""
return len(self.items)
if __name__ == '__main__':
stack = Stack()
stack.push(1)
stack.push('d')
stack.push('yy')
stack.push('aigahg')
stack.push('///')
stack.push('你好')
print(stack.size())
print(stack.peek())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())