python 隊列基本定義與使用方法【初始化、賦值、判斷等】
本文實例講述了python 隊列基本定義與使用方法。分享給大家供大家參考,具體如下:
隊列的特征是:先進先出
應用場景:消息通信、多進程間的協(xié)同、多線程間的協(xié)同等
在隊列中需要設計的實例屬性:head節(jié)點、tail節(jié)點
需要設計的實例方法有兩個:分別是入隊隊列enqueue和出隊隊列dequeue

# -*- coding:utf-8 -*-
#! python3
class Node(object): #節(jié)點,包括兩個屬性,一個是節(jié)點的值,一個是節(jié)點的下一個指向
def __init__(self,value):
self.value = value #節(jié)點的值
self.next = None #節(jié)點的下一個指向
class Queue(object): #隊列這個類
def __init__(self): #初始化這個隊列
self.first = None #隊列的首尾指向的節(jié)點都是None,初始化
self.last = None
def enter(self,n):
packNode = Node(n) #創(chuàng)建Node新節(jié)點實例,值為n
if self.first == None: #如果首指向為空
self.first = packNode #將首指向的節(jié)點賦為傳進來的節(jié)點
self.last = self.first #并且將尾指向的節(jié)點賦為
else:
self.last.next = packNode #如果隊列不為空,就將新的節(jié)點賦值到目前l(fā)ast的下一個位置
self.last = packNode #然后移動last指向,將last指向到剛才新增的節(jié)點
def quit(self):
if self.first == None:
return None
else:
tmp = self.first.value #如果隊列中存在值,則把隊列中第一個的值賦值給tmp
self.first = self.first.next #將first的指向下一個,變?yōu)閒irst指向
return tmp
if __name__ == '__main__':
print("------------隊列開始--------")
q = Queue()
# n1 = Node(1)
# n2 = Node(2)
# n3 = Node(3)
q.enter(1)
q.enter(2)
q.enter(3)
print(q.quit())
print(q.quit())
print(q.quit())
# print(q)
運行結果:
------------隊列開始--------
1
2
3
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
python3實現(xiàn)ftp服務功能(服務端 For Linux)
這篇文章主要介紹了python3實現(xiàn)ftp服務功能,服務端 For Linux,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
Python實現(xiàn)Tab自動補全和歷史命令管理的方法
這篇文章主要介紹了Python實現(xiàn)Tab自動補全和歷史命令管理的方法,實例分析了tab自動補全的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
OpenCV-Python使用cv2實現(xiàn)傅里葉變換
在OpenCV中,我們通過cv2.dft()來實現(xiàn)傅里葉變換,使用cv2.idft()來實現(xiàn)逆傅里葉變換。本文就詳細的介紹一下這兩種用法,感興趣的可以了解一下2021-06-06

