iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

30天搞懂Python系列 第 3

[第03天]30天搞懂Python-環形佇列(circular queue)

  • 分享至 

  • xImage
  •  

環形佇列定義

以一維陣列CQ(0 ~ n-1)表示一個環狀佇列
指標front指向佇列前端元素的前一個位置,指標rear則指向佇列尾端的元素,如下圖。
https://ithelp.ithome.com.tw/upload/images/20200918/20107143bVSEtSBckM.jpg

實作環形佇列

from collections import deque
##定義一8個元素環形佇列
cq = deque([11,22,33,44,55,66], maxlen=8) ##如下圖
cq.append(77)
cq.extend([88])

# [11,22,33,44,55,66,77,88]
print(cq.pop())  # [11,22,33,44,55,66,77] --> 88

# 旋轉指標
cq.rotate(-1)

# at this point you have [22,33,44,55,66,77,11]
print(cq.pop())  # [22,33,44,55,66,77] --> 11
print(cq.pop())  # [22,33,44,55,66] --> 77
print(cq.pop())  # [22,33,44,55] --> 66
print(cq.pop())  # [22,33,44] --> 55

https://ithelp.ithome.com.tw/upload/images/20200918/20107143JJZGSKPMXC.jpg

程式執行成果

https://ithelp.ithome.com.tw/upload/images/20200918/20107143YMbJW0Xa2C.jpg


上一篇
[第02天]30天搞懂Python-文件I/O
下一篇
[第04天]30天搞懂Python-DB連線(MongoDB)
系列文
30天搞懂Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言