原文地址[
分类目录——数据结构笔记](https://blog.csdn.net/bbjg_001/category_9753496.html)
栈(stack),有些地方也成为堆栈,是一种容器,可存储元素、访问元素、删除元素,他的特点是值能允许在容器的一段(称之为 栈顶 top)进行数据的追加(push)和数据读出(pop)。没有了位置/索引的概念,保证任何时候可以访问、删除的元素都是在此前左后存入的那个元素,确定了一种默认的访问顺序。
由于栈数据结构只允许在一段进行操作,因而按照后进先出(LIFO,Last In First Out)的原理运作。
可以通过线性表(顺序表或链表)实现,通过限制操作方法,只能从一端操作(存取)
-
通过顺序表的方式实现
栈
的数据结构class Stack(object): def __init__(self): self.__list = [] # 通过list来实现 def push(self, value): '''压/入栈:从栈顶添加元素''' self.__list.append(value) # 把list的尾部当做栈顶来用 def pop(self): '''出栈,从栈顶取元素''' self.__list.pop() # 把list的尾部当做栈顶 def peek(self): '''返回栈顶元素''' if self.__list: return self.__list[-1] else: return def is_empty(self): return not self.__list def size(self): return len(self.__list)