1, 简单了解:
栈 (stack) 又名堆栈, 它是一种运算受限的线性表.
限定仅在表尾进行插入和删除操作的线性表. 这一端被称为栈顶, 相对地, 把另一端称为栈底.
向一个栈插入新元素又称作进栈, 入栈或压栈, 它是把新元素放到栈顶元素的上面, 使之成为新的栈顶元素;
从一个栈删除元素又称作出栈或退栈, 它是把栈顶元素删除掉, 使其相邻的元素成为新的栈顶元素.
"栈" 者, 存储货物或供旅客住宿的地方, 可引申为仓库, 中转站, 所以引入到计算机领域里, 就是指数据暂时存储的地方, 所以才有进栈, 出栈的说法.
-- 百度百科
2, 代码实现:
下面是将 python 中内置的 list 数据类型维护成一个栈的简单实现:
- class Stack(object):
- """该类将 list 列表维护成一个栈"""
- def __init__(self):
- self.items = []
- def isEmpty(self):
- """判断栈是否为空"""
- return self.items == []
- def push(self, item):
- """添加一个新的元素 item 到栈顶"""
- self.items.append(item)
- def pop(self):
- """弹出栈顶元素"""
- return self.items.pop()
- def top(self):
- """返回栈顶元素"""
- return self.items[len(self.items) - 1]
- def size(self):
- """返回栈的元素个数"""
- return len(self.items)
现在, 使用该 Stack 类实例化一个栈后, 就能用其方法了:
- stack = Stack()
- print(stack.isEmpty())
- print()
- stack.push('you')
- stack.push('love')
- stack.push('I')
- print(stack.top())
- print(stack.size())
- print(stack.isEmpty())
- print(stack.pop())
- print(stack.pop())
- print(stack.pop())
- print(stack.size())
打印结果:
- True
- I
- 3
- False
- I
- love
- you
- 0
以上.
来源: http://www.bubuko.com/infodetail-3364830.html