日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python 數據結構之隊列的實現

系統 1697 0

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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 开阳县| 梁平县| 固阳县| 潼关县| 凤庆县| 泗洪县| 永城市| 山东| 封丘县| 忻城县| 蕲春县| 鄢陵县| 安义县| 泰来县| 嘉荫县| 阿克苏市| 敦煌市| 辽中县| 游戏| 新野县| 札达县| 徐州市| 麟游县| 宁武县| 龙南县| 玛曲县| 翁牛特旗| 子长县| 宣威市| 中超| 沾益县| 织金县| 边坝县| 宝清县| 襄汾县| 北流市| 苍梧县| 广宁县| 樟树市| 西城区| 青海省|