栈
栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底。向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称为出栈或退栈,它是把栈顶元素删除掉,使其下面的相邻元素成为新的栈顶元素。
由于栈的插入和删除运算仅在栈顶一端进行,后进栈的元素必定先出栈,所以又把栈称为后进先出表(Last In First Out, 简称LIFO)。例如,假定一个栈S为(a,b,c),其中字符c的一端为栈顶,字符c为栈顶元素。若向S压入一个元素d,则S变为(a,b,c,d),此时字符d为栈顶元素;若接着从栈S中依次删除两个元素,则首先删除的是元素d,接着删除的使元素c,栈S变为(a,b),栈顶元素为b。
Python实现
(1)压栈(push)
(2)出栈(pop)
(3)取栈顶(gettop)
考虑用Python中的列表实现基本栈的操作,代码如下:
//定义一个栈类
Class Stack:
def __init__(self):
self.stack=[] //定义类初始属性,为一个列表
def push(self,element):
self.stack.append(element) //对应栈的压栈操作
def pop(self):
return self.stack.pop() //返回出栈的元素
def gettop(self):
if len(self.stack)>0:
return self.stack[-1] //取栈顶元素
else:
return None
stack=Stack()
stack.push(2)
stack.push(3)
print(stack.stack)
stack.pop()
print(stack.stack)
stack.gettop()