栈
"栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法
。
一、概念
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表,这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其下方的元素成为新的栈顶元素。
二、栈的特点:后进先出
栈的代码实现
class Stack():
def __init__(self):
"""
初始化栈(以列表充当此数据结构的容器)
"""
self.items = []
def push(self, item):
"""
进栈(由栈顶至栈底添加)
:param item: 被添加元素
:return:
"""
self.items.append(item)
def pop(self):
"""
出栈(由栈顶向栈底取元素)
:return: 取出的元素
"""
return self.items.pop()
def isEmpty(self):
"""
空栈
:return: 若为空栈,则返回空列表
"""
return self.items == []
def size(self):
"""
栈中元素个数
:return:
"""
return len(self.items)
def peek(self):
"""
得到栈顶元素的下标
:return:
"""
return len(self.items) - 1
if __name__ == '__main__':
s = Stack()
s.push(1)
s.push(2)
s.push(3)
print(s.pop())
print(s.pop())
print(s.pop())
# 3
# 2
# 1
# 栈这种数据结构的特点即:后进先出