激情久久久_欧美视频区_成人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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美性色生活片免费播放 | 日韩在线视频在线观看 | 一区二区三区欧美在线观看 | 亚洲成人福利网站 | 欧美精品久久天天躁 | 久久狂草 | 久久国产经典 | 91短视频在线免费观看 | 国产乱轮视频 | 天堂成人一区二区三区 | 毛片网站视频 | 欧美精品成人一区二区在线观看 | 中文字幕在线亚洲 | 黄色免费大片 | 91羞羞| 精品亚洲视频在线 | 国产91精品欧美 | av电影在线观看网址 | 久久久久久久亚洲精品 | 中文字幕h| 亚洲精品av在线 | 正在播放91 | 香蕉视频18 | 色婷婷久久一区二区 | 精品国产一区二区三区久久久 | 国产美女三级做爰 | 亚洲小视频在线 | 日韩精品免费看 | 久久综合久久美利坚合众国 | 亚洲免费视频一区二区 | 中国免费黄色 | 欧美成人精品一级 | 国产成人强伦免费视频网站 | 毛片视频大全 | 369看片你懂的小视频在线观看 | 污黄视频在线观看 | 久久免费视频精品 | 国产精品久久久久久久久久了 | 凹凸成人精品亚洲精品密奴 | 国内精品久久久久影院不卡 | 成人国产精品一区二区毛片在线 |