加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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])

#把列表作为队列使用,效率不高,因为出队时要移动后面所有的元素。

?

?

deque

deque 是双边队列,同时具有栈和队列的性质,可进行栈、队列相关的操作。并且还在在 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是空的

#只要实现先进先出即可

?

?

实现栈、队列时,一般是使用空列表[]。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读