Python 栈、队列的实现
发布时间:2020-12-20 12:48:47 所属栏目:Python 来源:网络整理
导读:在python中,列表既可以作为栈使用,又可以作为队列使用。 ? 把列表作为栈使用 栈:后进先出 stack=[1,2,3 ]stack.append( 4) # 入栈,以列表尾部为栈顶 print (stack.pop()) # 出栈 4 print (stack) # [1,3] ? ? 把列表作为队列使用 队列:先进先出 from co
在python中,列表既可以作为栈使用,又可以作为队列使用。 ? 把列表作为栈使用栈:后进先出 stack=[1,2,3] stack.append(4) #入栈,以列表尾部为栈顶 print(stack.pop()) #出栈 4 print(stack) #[1,3] ? ? 把列表作为队列使用队列:先进先出 from collections import deque list=[1,3] queue=deque(list) #将列表转换为队列 queue.append(0) #入队,添加到队列尾部 print(queue.popleft()) #出队,弹出并返回队首元素 print(queue) #deque([2,3,0]) #把列表作为队列使用,效率不高,因为出队时要移动后面所有的元素。 ? ? dequedeque 是双边队列,同时具有栈和队列的性质,可进行栈、队列相关的操作。并且还在在 list 的基础上增加了移动、旋转和增删等操作。 from collections import deque #需要导入模块 list=[1,3] deque=deque(list) #将列表转换为deque deque.append(4) #添加到尾部 print(deque) #deque([1,0]) deque.appendleft(0) #添加到首部 print(deque) #deque([0,1,4]) print(deque.pop()) #弹出并返回最后一个元素 4 print(deque) #deque([0,3]) print(deque.popleft()) #弹出并返回左边第一个元素 0 print(deque) #deque([1,3]) ? ? deque实现栈:from collections import deque #需要导入模块 list=[1,3] deque=deque(list) #将列表转换为deque #作为栈使用:方式一 deque.append(4) #入栈 print(deque) #deque([1,4]) print(deque.pop()) #出栈 4 print(deque) #deque([1,3]) #作为栈使用:方式二 deque.appendleft(0) #入栈 print(deque) #deque([0,1,3]) print(deque.pop()) #出栈 3 print(deque) #deque([0,2]) #只要实现后进先出即可 ? ? deque实现队列:from collections import deque #需要导入模块 list=[1,3] deque=deque(list) #将列表转换为deque #作为队列使用:方式一 deque.append(4) #入队 print(deque) #deque([1,4]) print(deque.popleft()) #出队 1 print(deque) #deque([2,4]) ? from collections import deque #需要导入模块 list=[] #空列表 deque=deque(list) #作为队列使用:方式二 deque.appendleft(1) #入队 deque.appendleft(2) print(deque) #deque([2,1]) print(deque.pop()) #出队 1 print(deque) #deque([2]) #这种方式需要list是空的 #只要实现先进先出即可 ? ? 实现栈、队列时,一般是使用空列表[]。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |