标签:__ items self Stack 算法 push 数据结构 stack def
栈 Stack
栈是一种特殊的线性表,只能在一端进行操作
往栈中添加元素的操作,叫做入栈,push
往栈中移除元素的操作,叫做出栈,pop,只能移除栈顶元素,也叫弹出栈顶元素
FILO的结构 First In Last Out
栈的接口设计:
isEmpty() 判断栈是否为空
size() 返回栈中元素数量
push() 入栈
pop() 出栈
peek() 获取栈顶元素
栈的应用:
浏览器的前进和后退:使用两个栈,一个用来存放当前访问及其之前的网址,一个用来存放当前访问之后的网址
软件的撤销(Undo)和恢复(Redo)
class Stack(object):
def __init__(self):
self.items = []
# 判断栈是否为空
def isEmpty(self):
return self.items == []
# 获取栈的长度
def size(self):
return len(self.items)
# 入栈
def push(self,item):
self.items.append(item)
# 出栈
def pop(self):
return self.items.pop()
# 获取栈顶元素
def peek(self):
return self.items[self.size() - 1]
if __name__ == '__main__' :
stack = Stack()
stack.push(11)
stack.push(22)
stack.push(33)
stack.push(44)
res = stack.peek()
print(res)
while stack.isEmpty() == False :
res = stack.pop()
print(res)
44
44
33
22
11
标签:__,items,self,Stack,算法,push,数据结构,stack,def 来源: https://www.cnblogs.com/HyeJeong/p/15484182.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。