Python 數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的實(shí)現(xiàn)
Python 隊(duì)列
Queue 隊(duì)列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)類型, 新的元素通過 入隊(duì) 的方式添加進(jìn) Queue 的末尾, 出隊(duì) 就是從 Queue 的頭部刪除元素.
用列表來做 Queue:
queue = [] # 初始化一個列表數(shù)據(jù)類型對象, 作為一個隊(duì)列 def enQ(): # 定義一個入棧方法 queue.append(raw_input('Enter New String: ').strip()) # 提示輸入一個入隊(duì)的 String 對象, 調(diào)用 Str.strip() 保證輸入的 String 值不包含多余的空格 def deQ(): # 定義一個出隊(duì)方法 if len(queue) == 0: print "Cannot pop from an empty queue!" else: print 'Remove [', `queue.pop(0)`, ']' # 使用反單引號(` `)來代替 repr(), 把 String 的值用引號擴(kuò)起來, 而不僅顯示 String 的值 # queue.pop(0) 總是將在隊(duì)列中最前面的元素彈出 def viewQ(): # 定義一個顯示隊(duì)列中的內(nèi)容的方法 print queue CMDs = {'u':enQ, 'o':deQ, 'v':viewQ} # 定義一個 Dict 類型對象, 將字符映射到相應(yīng)的 function .可以通過輸入字符來執(zhí)行相應(yīng)的操作 def showmenu(): # 定義一個操作菜單提示方法 pr = """ (E)nqueue (D)equeue (V)iew (Q)uit Enter choice: """ while True: while True: try: choice = raw_input(pr).strip()[0].lower() # Str.strip() 去除 String 對象前后的多余空格 # Str.lower() 將多有輸入轉(zhuǎn)化為小寫, 便于后期的統(tǒng)一判斷 # 輸入 ^D(EOF, 產(chǎn)生一個 EOFError 異常) # 輸入 ^C(中斷退出, 產(chǎn)生一個 keyboardInterrupt 異常) except (EOFError, KeyboardInterrupt, IndexError): choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'uovq': print 'Invalid option, try again' else: break if choice == 'q': break CMDs[choice]() # 獲取 Dict 中字符對應(yīng)的 functionName, 實(shí)現(xiàn)函數(shù)調(diào)用 if __name__ == '__main__': showmenu()
隊(duì)列和堆棧的實(shí)現(xiàn)方式很相似, 區(qū)別在于隊(duì)列總是先彈出第一個元素而堆??偸窍葟棾鲎詈笠粋€元素.
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Python實(shí)現(xiàn)輸出程序執(zhí)行進(jìn)度百分比的方法
這篇文章主要介紹了Python實(shí)現(xiàn)輸出程序執(zhí)行進(jìn)度百分比的方法,涉及Python數(shù)值運(yùn)算與系統(tǒng)輸出相關(guān)操作技巧,需要的朋友可以參考下2017-09-09使用Python將PDF文件轉(zhuǎn)存為圖片的代碼示例
因工作中的某些奇葩要求,需要將PDF文件的每頁內(nèi)容轉(zhuǎn)存成按順序編號的圖片,用第三方軟件或者在線轉(zhuǎn)換也可以,但批量操作還是Python方便,所以本文給大家介紹了使用Python將PDF文件轉(zhuǎn)存為圖片的方法,需要的朋友可以參考下2023-09-09python+django加載靜態(tài)網(wǎng)頁模板解析
這篇文章主要介紹了python+django加載靜態(tài)網(wǎng)頁模板解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12python3連接mysql獲取ansible動態(tài)inventory腳本
Ansible Inventory 是包含靜態(tài) Inventory 和動態(tài) Inventory 兩部分的,靜態(tài) Inventory 指的是在文件中指定的主機(jī)和組,動態(tài) Inventory 指通過外部腳本獲取主機(jī)列表。這篇文章主要介紹了python3連接mysql獲取ansible動態(tài)inventory腳本,需要的朋友可以參考下2020-01-01Python通過內(nèi)置函數(shù)和自寫算法DFS實(shí)現(xiàn)排列組合
這篇文章主要介紹了Python通過內(nèi)置函數(shù)和自寫算法DFS實(shí)現(xiàn)排列組合,排列組合是數(shù)學(xué)中的一種常見的計(jì)算方法,用于求出從給定的元素中選取若干個元素的所有可能的排列或組合。在Python中,有多種方式可以實(shí)現(xiàn)排列組合的計(jì)算,需要的朋友可以參考下2023-05-05簡單瞅瞅Python vars()內(nèi)置函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了簡單瞅瞅Python vars()內(nèi)置函數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09用Python實(shí)現(xiàn)2024年春晚劉謙魔術(shù)
昨晚春晚上劉謙的兩個魔術(shù)表演都非常精彩,忍不住用編程去模擬一下這個過程,所以本文給大家用Python實(shí)現(xiàn)2024年春晚劉謙魔術(shù),文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02python對raw格式照片進(jìn)行降噪處理的方法詳解
要對RAW格式的照片進(jìn)行降噪,我們可以使用rawpy庫來讀取RAW圖像,并使用imageio庫將處理后的圖像保存為其他格式,如PNG或JPEG,本文將詳細(xì)給大家介紹python如何對raw格式照片進(jìn)行降噪處理,文中有詳細(xì)的代碼流程,需要的朋友可以參考下2023-05-05