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

首頁(yè) > 編程 > Python > 正文

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

2019-11-25 16:23:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Python 隊(duì)列

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

用列表來(lái)做 Queue:

queue = []         # 初始化一個(gè)列表數(shù)據(jù)類型對(duì)象, 作為一個(gè)隊(duì)列def enQ():       # 定義一個(gè)入棧方法  queue.append(raw_input('Enter New String: ').strip())     # 提示輸入一個(gè)入隊(duì)的 String 對(duì)象, 調(diào)用 Str.strip() 保證輸入的 String 值不包含多余的空格def deQ():        # 定義一個(gè)出隊(duì)方法  if len(queue) == 0:    print "Cannot pop from an empty queue!"  else:    print 'Remove [', `queue.pop(0)`, ']'    # 使用反單引號(hào)(` `)來(lái)代替 repr(), 把 String 的值用引號(hào)擴(kuò)起來(lái), 而不僅顯示 String 的值    # queue.pop(0) 總是將在隊(duì)列中最前面的元素彈出def viewQ():      # 定義一個(gè)顯示隊(duì)列中的內(nèi)容的方法    print queueCMDs = {'u':enQ, 'o':deQ, 'v':viewQ}# 定義一個(gè) Dict 類型對(duì)象, 將字符映射到相應(yīng)的 function .可以通過(guò)輸入字符來(lái)執(zhí)行相應(yīng)的操作def showmenu():      # 定義一個(gè)操作菜單提示方法  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 對(duì)象前后的多余空格        # Str.lower() 將多有輸入轉(zhuǎn)化為小寫, 便于后期的統(tǒng)一判斷        # 輸入 ^D(EOF, 產(chǎn)生一個(gè) EOFError 異常)        # 輸入 ^C(中斷退出, 產(chǎn)生一個(gè) 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 中字符對(duì)應(yīng)的 functionName, 實(shí)現(xiàn)函數(shù)調(diào)用if __name__ == '__main__':  showmenu()

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 垫江县| 拜泉县| 双辽市| 大庆市| 建阳市| 甘泉县| 宜章县| 乌拉特前旗| 龙胜| 岑溪市| 宜良县| 三都| 北京市| 兴安盟| 航空| 泰州市| 龙海市| 枣庄市| 山阴县| 龙州县| 河津市| 凤冈县| 利辛县| 大田县| 南雄市| 芷江| 长岭县| 龙海市| 定远县| 临江市| 阳曲县| 宁河县| 东丰县| 青龙| 寿宁县| 武山县| 德清县| 江孜县| 双城市| 喀喇| 叶城县|