- 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):
"""弹出栈顶元素"""
if self.isEmpty():
return "Stack Is Empty"
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
以上。