栈:栈可以看作在同一位置上进行插入和删除的表,这个位置一般称为栈顶。栈的基本操作是进栈和出栈,栈可以看作是一个容器,先入的数据保存在栈底,后入栈 的数据保存在容器顶部。出栈的时候,后入栈的先出,而先入栈的后出,因此栈有一个特性叫后进先出(LIFO)。
下面所示的pystack.py在python中创建一个简单的stack.,
# --*--coding:utf-8 --*--
#file jiandan.py
#
class PyStack:
def __init__(self,size = 20):
self.stack=[]
self.size = size
self.top = -1
def setSize(self,size):
self.size = size
def push(self,element):
if self.isFull():
raise StackException("PystackOverflow")
else:
self.stack.append(element)
self.top += 1
def pop(self):
if self.isEmpty():
raise StackException("PyStackUnderflow")
else :
element = self.stack[-1]
self.top -= 1
del self.stack[-1]
return element
def Top(self):
return self.top
def empty(self):
self.stack=[]
self.top=-1
def isEmpty(self):
if self.top==-1:
return True
else:return False
def isFull(self):
if self.top==self.size-1:
return True
else :return False
class StackException(Exception):
def __init__(self,data):
self.data=data
def __str__(self):
return self.data
stack = PyStack()
for i in range(10):
stack.push(i)
print(stack.Top())