栈是编程开发中的两种较为简单的数据结构。栈和队可用于模拟函数的递归。栈的特点是后进先出。其常用操作包括:出栈,入栈等。在出栈前,需判断栈是否为空。在入栈时,需判断栈是否已满。
下面给出一个用python实现的栈的实例:
class Stack(object): def __init__(self, size = 8): self.stack = [] self.size = size self.top = -1 def set_size(self, size): if self.top >= size: raise Exception("StackWillOverFlow") self.size = size def isFull(self): return True if self.size == self.top + 1 else False def isEmpty(self): return True if self.top == -1 else False def push(self, data): if self.isFull(): raise Exception("StackOverFlow") return self.stack.append(data) self.top += 1 def pop(self): if self.isEmpty(): raise Exception("StackIsEmpty") return self.top -= 1 return self.stack.pop() def top(self): if self.isEmpty(): raise Exception("StackIsEmpty") return -1 return self.stack[self.top] def show(self): print self.stack