数据结构之栈(Stack)
一、栈的结构
栈是一种存储数据的容器,支持按照后进先出(LIFO, Last In First Out)的顺序,对数据进行插入、访问、删除等操作。
栈只支持对栈顶进行操作,因此任何时候删除、访问的数据都是该栈中最后一次插入的数据
二、一个栈对象包含的操作
# Stack() 创建一个新的空栈
# push(item) 添加一个新的元素item到栈顶
# pop() 弹出栈顶元素
# peek() 返回栈顶元素
# is_empty() 判断栈是否为空
# size() 返回栈的元素个数
三、实现一个栈
class MyStack:
def __init__(self):
self.stack = []
def push(self, item):
'''
在栈顶添加item
:param item:
:return:
'''
self.stack.append(item)
def pop(self):
'''
弹出栈顶的item
:return:
'''
if not self.stack:
return None
else:
self.stack.pop()
def peek(self):
'''
返回栈顶的item
:return:
'''
if not self.stack:
return None
return self.stack[-1]
def is_empty(self):
'''
判断栈是否为空
:return:
'''
return self.stack == []
def size(self):
'''
返回栈中item的个数
:return:
'''
return len(self.stack)