Python 隊列
Queue 隊列是一種先進先出(FIFO)的數據類型, 新的元素通過 入隊 的方式添加進 Queue 的末尾, 出隊 就是從 Queue 的頭部刪除元素.
用列表來做 Queue:
queue = [] # 初始化一個列表數據類型對象, 作為一個隊列 def enQ(): # 定義一個入棧方法 queue.append(raw_input('Enter New String: ').strip()) # 提示輸入一個入隊的 String 對象, 調用 Str.strip() 保證輸入的 String 值不包含多余的空格 def deQ(): # 定義一個出隊方法 if len(queue) == 0: print "Cannot pop from an empty queue!" else: print 'Remove [', `queue.pop(0)`, ']' # 使用反單引號(` `)來代替 repr(), 把 String 的值用引號擴起來, 而不僅顯示 String 的值 # queue.pop(0) 總是將在隊列中最前面的元素彈出 def viewQ(): # 定義一個顯示隊列中的內容的方法 print queue CMDs = {'u':enQ, 'o':deQ, 'v':viewQ} # 定義一個 Dict 類型對象, 將字符映射到相應的 function .可以通過輸入字符來執行相應的操作 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() 將多有輸入轉化為小寫, 便于后期的統一判斷 # 輸入 ^D(EOF, 產生一個 EOFError 異常) # 輸入 ^C(中斷退出, 產生一個 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 中字符對應的 functionName, 實現函數調用 if __name__ == '__main__': showmenu()
隊列和堆棧的實現方式很相似, 區別在于隊列總是先彈出第一個元素而堆??偸窍葟棾鲎詈笠粋€元素.
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
