7.1 栈ADT
栈(stack)是只允许在一端进行插入或删除元素操作的储存容器,其特点是后进先出(last-in first-out, LIFO)。
其允许插入删除的一端称为栈顶(top),另一端称为栈底(bottom)。没有任何元素时称为空栈。
栈ADT应包含的属性:
- Stack():创建一个空栈;
- isEmpty():判断栈是否为空;
- length():返回栈的元素个数;
- pop():弹出元素,栈的元素个数减一,若为空栈,则引发异常;
- peek():获取栈顶元素,不改变栈的元素个数;
- push(item):将元素item压入栈中,作为新的栈顶,栈的元素个数加一。
#-*-coding: utf-8-*-
# 栈基本操作
PROMPT = "Enter an int value (<0 to end): "
myStack() = Stack()
value = int(raw_input(PROMPT))
while value >= 0:
myStack.push(value)
value = int(raw_input(PROMPT))
while not myStack.isEmpty():
value = myStack.pop()
print value
7.2 栈的实现
栈有两种实现方式,一种是使用python列表(数