国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 數(shù)據(jù)結(jié)構(gòu)之隊列的實現(xiàn)

2020-02-23 04:19:14
字體:
供稿:網(wǎng)友

Python 隊列

Queue 隊列是一種先進先出(FIFO)的數(shù)據(jù)類型, 新的元素通過 入隊 的方式添加進 Queue 的末尾, 出隊 就是從 Queue 的頭部刪除元素.

用列表來做 Queue:

queue = []         # 初始化一個列表數(shù)據(jù)類型對象, 作為一個隊列def enQ():       # 定義一個入棧方法  queue.append(raw_input('Enter New String: ').strip())     # 提示輸入一個入隊的 String 對象, 調(diào)用 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():      # 定義一個顯示隊列中的內(nèi)容的方法    print queueCMDs = {'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, 實現(xiàn)函數(shù)調(diào)用if __name__ == '__main__':  showmenu()

隊列和堆棧的實現(xiàn)方式很相似, 區(qū)別在于隊列總是先彈出第一個元素而堆棧總是先彈出最后一個元素.

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 古蔺县| 河津市| 海淀区| 蒲城县| 长海县| 都安| 攀枝花市| 翁牛特旗| 灵台县| 庆元县| 贵德县| 安阳市| 牟定县| 玉屏| 巧家县| 水城县| 泗阳县| 三门县| 碌曲县| 潜江市| 嵊州市| 怀安县| 定边县| 抚州市| 武威市| 弥勒县| 尖扎县| 行唐县| 海门市| 洛阳市| 泌阳县| 松溪县| 土默特右旗| 兴义市| 余干县| 昔阳县| 衡阳市| 子长县| 常熟市| 嵊泗县| 常熟市|