栈(stack)
-
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。
-
向一个栈插入新元素又称作进栈、入栈或压栈
-
从一个栈删除元素又称作出栈或退栈
话不多说,上代码
# !/usr/bin/env python # _*_ coding:utf-8 _*_ # author:满怀心 2019/2/15 18:25 class Stack(object): def __init__(self, size=50): # 设置栈的默认大小是50 self.size = size # 栈的大小 self.stack = [] # 用列表模拟栈 self.top = -1 # 栈顶的位置 def isfull(self): return self.top == self.size - 1 # 判断是否满栈来返回True或False def push(self, element): if self.isfull(): # 判断是否满栈 raise Exception("Stack out of range") else: self.stack.extend((*args,)) # 元素进栈(此处用元组包裹不定长参数) self.top += len((*args,)) # 计算栈顶的位置 def isempty(self): return self.top == -1 # 判断是否空栈来返回True或False def pop(self): if isempty: # 如果空栈,抛出异常 raise Exception("Stack is empty") else: self.stack.pop() # 元素出栈 self.top -= 1 # 计算栈顶的位置 def set_size(self, size): # 重新设置栈的大小 self.size = size def clear(self): # 清空栈 self.stack = [] self.top = -1 if __name__ == "__main__": pass