一、什么是栈
栈是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许允许在容器的一端进行计入和输出元素。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。
栈结构可以使用顺序表实现,也可以使用链表来实现,只需要按照栈的特点来实现即可。
二、栈结构的实现
class Stack: def __init__(self): """使用顺序表结构存储数据""" self._list = [] def is_empty(self): """判断栈是否是空的""" return self._list == [] def push(self, item): """添加元素,从尾部加元素,再从尾部取元素,复杂度为O(1)""" self._list.append(item) def pop(self): """取出元素""" return self._list.pop() def peek(self): """返回栈顶元素""" return self._list[len(self._list) - 1] def size(self): """返回栈的大小""" return len(self._list)
栈没有规定那一端必须作为操作的位置,只需要保证压栈和出栈都是同一端即可,比如:使用append进行尾部压栈操作,然后使用pop进行尾部出栈操作。