国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python實現的數據結構與算法之隊列詳解

Python實現的數據結構與算法之隊列詳解

2020-06-10 09:43RussellLuo Python

這篇文章主要介紹了Python實現的數據結構與算法之隊列,詳細分析了隊列的定義、功能與Python實現隊列的相關技巧,以及具體的用法,需要的朋友可以參考下

本文實例講述了Python實現的數據結構與算法之隊列。分享給大家供大家參考。具體分析如下:

一、概述

隊列(Queue)是一種先進先出(FIFO)的線性數據結構,插入操作在隊尾(rear)進行,刪除操作在隊首(front)進行。

二、ADT

隊列ADT(抽象數據類型)一般提供以下接口:

① Queue() 創建隊列
② enqueue(item) 向隊尾插入項
③ dequeue() 返回隊首的項,并從隊列中刪除該項
④ empty() 判斷隊列是否為空
⑤ size() 返回隊列中項的個數

隊列操作的示意圖如下:

Python實現的數據結構與算法之隊列詳解

三、Python實現

使用Python的內建類型list列表,可以很方便地實現隊列ADT:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class Queue:
  def __init__(self):
    self.items = []
  def enqueue(self, item):
    self.items.append(item)
  def dequeue(self):
    return self.items.pop(0)
  def empty(self):
    return self.size() == 0
  def size(self):
    return len(self.items)

四、應用

著名的 約瑟夫斯問題(Josephus Problem)是應用隊列(確切地說,是循環隊列)的典型案例。在 約瑟夫斯問題 中,參與者圍成一個圓圈,從某個人(隊首)開始報數,報數到n+1的人退出圓圈,然后從退出人的下一位重新開始報數;重復以上動作,直到只剩下一個人為止。

值得注意的是,Queue類只實現了簡單隊列,上述問題實際上需要用循環隊列來解決。在報數過程中,通過“將(從隊首)出隊的人再入隊(到隊尾)”來模擬循環隊列的行為。具體代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def josephus(namelist, num):
  simqueue = Queue()
  for name in namelist:
    simqueue.enqueue(name)
  while simqueue.size() > 1:
    for i in xrange(num):
      simqueue.enqueue(simqueue.dequeue())
    simqueue.dequeue()
  return simqueue.dequeue()
if __name__ == '__main__':
  print(josephus(["Bill", "David", "Kent", "Jane", "Susan", "Brad"], 3))

運行結果:

?
1
2
$ python josephus.py
Susan

希望本文所述對大家的Python程序設計有所幫助。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 天堂va在线高清一区 | 日日摸夜夜添夜夜添精品视频 | 不卡av一区二区三区 | 久久视频精品 | 中文字幕在线观看视频地址二 | 国产日韩在线视频 | 国外成人在线视频 | 国产精品精品视频一区二区三区 | 日本黄a三级三级三级 | 国产女爽爽视频精品免费 | 日本福利视频网 | 精品成人在线视频 | 综合自拍| 欧美色欧美亚洲另类七区 | 依人在线视频 | 色偷偷噜噜噜亚洲男人的天堂 | 国产精品99久久免费观看 | 毛片在线网址 | 日本三级精品视频 | 亚洲 成人 一区 | 无码一区二区三区视频 | 簧片毛片 | 午夜激情影院 | 免费视频成人国产精品网站 | 国产在线精品一区 | 久久久av| 国产日韩欧美在线 | 狠狠干狠狠操 | av在线一区二区三区 | 欧美在线a| 亚洲国产一区视频 | 久久精品在线 | 黄色av日韩 | 日韩精品免费一区二区夜夜嗨 | 亚洲在线视频 | 精品综合 | 免费视频黄| 欧美精品一二区 | 日韩欧美在线免费观看 | 欧美日韩一区二 | av在线精品 |