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

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

系統(tǒng) 1780 0

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 queue

CMDs = {'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ì)本站的支持!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 阳曲县| 喀喇沁旗| 拜城县| 宁夏| 自治县| 灵山县| 朔州市| 台州市| 凤山市| 施秉县| 云浮市| 辽源市| 额敏县| 仁怀市| 崇义县| 吉木乃县| 海城市| 牟定县| 临澧县| 巨鹿县| 秭归县| 民勤县| 福建省| 肇庆市| 南和县| 焉耆| 宁津县| 富蕴县| 贞丰县| 阿克苏市| 海南省| 河东区| 航空| 凯里市| 仙游县| 涿州市| 龙门县| 深水埗区| 洛南县| 来凤县| 金秀|