栈是一种数据结构,只能从一端插入和删除操作,遵循着先进后出原则存储数据。
3.1 栈的初始化 1 2 3 4 def __init__ (self ): self.stack = [] self.size = 20 self.top = -1
3.2 元素进栈 1 2 3 4 def push (self, element ): self.stack.append(element) self.top += 1
3.3 元素出栈 1 2 3 4 5 6 def pop (self ): element = self.stack[-1 ] self.top -= 1 del self.stack[-1 ] return element
这里可以直接调用pop函数,使用如下:
3.4 获取栈顶元素 1 2 3 def getTop (self ): return self.top
这里也可以直接使用列表,使用如下:
3.5 清空栈 1 2 3 4 def empty (self ): self.stack = [] self.top = -1
3.6 判断是否为空栈 1 2 3 4 5 6 def isEmpty (self ): if self.top == -1 : return True else : return False
这里可以直接判断列表是否为空即可,使用如下:
3.7 判断是否为满栈 1 2 3 4 5 6 def isFull (self ): if self.top == self.size - 1 : return True else : return False
3.8 完整代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 class Stack : def __init__ (self ): self.stack = [] self.size = 20 self.top = -1 def push (self, element ): if self.isFull(): raise StackException('Stack is full' ) else : self.stack.append(element) self.top += 1 def pop (self ): if self.isEmpty(): raise StackException('Stack is empty' ) else : element = self.stack[-1 ] self.top -= 1 del self.stack[-1 ] return element def getTop (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 ''' 主函数 ''' if __name__ == '__main__' : stack = Stack() for i in range (10 ): stack.push(i) print ('栈顶位置:' , stack.getTop()) while not stack.isEmpty(): print (stack.pop()) stack.empty() for i in range (21 ): stack.push(i)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com