栈的代码实现
栈的代码实现
抓住栈的特点:
- 栈是线性表
- 栈满足先进后出
保留线性表的哪一端呢?
- 头部插入删除数据:
insert(0, item)
时间复杂度为:O(n)pop(0)
时间复杂度:O(n)
- 尾部插入删除数据
- append(item)时间复杂度:O(1)
- pop()时间复杂度:O(1)
所以保留尾部操作效率更高。
# 尾部插入删除数据
#append(item), pop()
class Stack(object):
"""栈,先进后出"""
def __init__(self):
self.__items = []
def push(self, item):
"""进栈"""
self.__items.append(item)
def pop(self):
"""出栈"""
self.__items.pop()
def travel(self):
"""遍历"""
for i in self.__items:
print(i)
my_stack = Stack()
my_stack.push(1)
my_stack.push(2)
my_stack.push(3)
my_stack.travel()
# 出栈
my_stack.pop()
my_stack.travel()