Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的操作方法示例
本文實(shí)例講述了Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的操作方法。分享給大家供大家參考,具體如下:
#! /usr/bin/env python
#coding=utf-8
class Queue(object):
def __init__(self,size):
self.size=size
self.head=-1 #初始化隊(duì)頭
self.tail=-1 #初始化隊(duì)尾
self.queue=[]
def EnQueue(self,x):
if self.IsFull():#如果試圖往滿隊(duì)列插入元素,則發(fā)生上溢
raise Exception("overflow !")
else:
self.queue.append(x)
self.tail += 1 #往隊(duì)列中加入元素是在尾部進(jìn)行
def DeQueue(self):
if self.IsEmpty():#如果試圖從空隊(duì)列刪除元素,則發(fā)生下溢
raise Exception("underflow !")
else:
self.head += 1#從隊(duì)列中刪除元素在隊(duì)頭進(jìn)行,將隊(duì)頭后移
return self.queue.pop(0)#利用內(nèi)建函數(shù)pop()將隊(duì)頭彈出
def IsFull(self):#判斷隊(duì)列滿
#return (self.tail+1)%self.size == self.head
return self.tail-self.head+1==self.size
def IsEmpty(self):#判斷隊(duì)列空?。?!
return self.head == self.tail
if __name__ == '__main__':
print "腳本之家測(cè)試結(jié)果:"
q=Queue(10)
for i in range(3):
q.EnQueue(i)
print q.queue
print q.DeQueue()
print q.queue
print q.DeQueue()
print q.IsEmpty()
print q.DeQueue()
print q.IsEmpty()
print q.queue
for i in range(9):
q.EnQueue(i)
print q.queue
print q.IsFull()
運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- 棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu)的基本概念及其相關(guān)的Python實(shí)現(xiàn)
- Python數(shù)據(jù)結(jié)構(gòu)之棧、隊(duì)列的實(shí)現(xiàn)代碼分享
- Python數(shù)據(jù)結(jié)構(gòu)之棧、隊(duì)列及二叉樹(shù)定義與用法淺析
- Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中棧的操作示例
- Python 數(shù)據(jù)結(jié)構(gòu)之堆棧實(shí)例代碼
- Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之隊(duì)列詳解
- Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊(duì)列詳解
- Python 數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的實(shí)現(xiàn)
- Python數(shù)據(jù)結(jié)構(gòu)與算法之使用隊(duì)列解決小貓釣魚(yú)問(wèn)題
- Python常見(jiàn)數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列用法示例
相關(guān)文章
python實(shí)現(xiàn)發(fā)送QQ郵件(可加附件)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)發(fā)送QQ郵件,可添加附件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
python實(shí)現(xiàn)自動(dòng)登錄12306自動(dòng)搶票功能
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來(lái)越多的人選擇通過(guò)網(wǎng)絡(luò)平臺(tái)購(gòu)票,特別是在中國(guó),12306作為官方火車(chē)票預(yù)訂平臺(tái),承擔(dān)了巨大的訪問(wèn)量,對(duì)于熱門(mén)線路或者節(jié)假日出行,往往會(huì)出現(xiàn)一票難求的情況,因此,一些技術(shù)愛(ài)好者嘗試?yán)镁幊陶Z(yǔ)言如Python來(lái)開(kāi)發(fā)搶票腳本2025-01-01
徹底卸載Anaconda詳細(xì)教程(超詳細(xì)!)
這篇文章主要給大家介紹了關(guān)于徹底卸載Anaconda的相關(guān)資料,Anaconda(官方網(wǎng)站)就是可以便捷獲取包且對(duì)包能夠進(jìn)行管理,同時(shí)對(duì)環(huán)境可以統(tǒng)一管理的發(fā)行版本,需要的朋友可以參考下2023-11-11
jupyter notebook實(shí)現(xiàn)顯示行號(hào)
這篇文章主要介紹了jupyter notebook實(shí)現(xiàn)顯示行號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Linux(Redhat)安裝python3.6虛擬環(huán)境(推薦)
這篇文章主要介紹了Linux(Redhat)安裝python3.6虛擬環(huán)境,非常不錯(cuò),具有參考借鑒價(jià)值 ,需要的朋友可以參考下2018-05-05
Python實(shí)現(xiàn)RGB與HSI顏色空間的互換方式
今天小編就為大家分享一篇Python實(shí)現(xiàn)RGB與HSI顏色空間的互換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
Python實(shí)現(xiàn)Linux下守護(hù)進(jìn)程的編寫(xiě)方法
這篇文章主要介紹了Python實(shí)現(xiàn)Linux下守護(hù)進(jìn)程的編寫(xiě)方法,比較實(shí)用的一個(gè)技巧,需要的朋友可以參考下2014-08-08
python使用tkinter包實(shí)現(xiàn)進(jìn)度條
python中的tkinter包是一種常見(jiàn)的設(shè)計(jì)程序的GUI界面用的包,本文將使用tkinter包實(shí)現(xiàn)不同風(fēng)格的進(jìn)度條,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
Python?Playwright進(jìn)行常見(jiàn)的頁(yè)面交互操作
在使用?Playwright?進(jìn)行?Web?自動(dòng)化時(shí),頁(yè)面交互是核心操作之一,本文將詳細(xì)介紹如何使用?Playwright?進(jìn)行常見(jiàn)的頁(yè)面交互操作,希望對(duì)大家有所幫助2024-10-10

