最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 數(shù)據(jù)結(jié)構(gòu)之堆棧實(shí)例代碼

 更新時(shí)間:2017年01月22日 14:43:20   投稿:lqh  
這篇文章主要介紹了Python 數(shù)據(jù)結(jié)構(gòu)之堆棧實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

Python 堆棧

堆棧是一個(gè)后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu). 堆棧這個(gè)數(shù)據(jù)結(jié)構(gòu)可以用于處理大部分具有后進(jìn)先出的特性的程序流 .
在堆棧中, push 和 pop 是常用術(shù)語:

  • push: 意思是把一個(gè)對象入棧.
  • pop: 意思是把一個(gè)對象出棧.

下面是一個(gè)由 Python 實(shí)現(xiàn)的簡單的堆棧結(jié)構(gòu):

stack = []         # 初始化一個(gè)列表數(shù)據(jù)類型對象, 作為一個(gè)棧

def pushit():       # 定義一個(gè)入棧方法
  stack.append(raw_input('Enter New String: ').strip())   
  # 提示輸入一個(gè)入棧的 String 對象, 調(diào)用 Str.strip() 保證輸入的 String 值不包含多余的空格

def popit():        # 定義一個(gè)出棧方法
  if len(stack) == 0:
    print "Cannot pop from an empty stack!"
  else:
    print 'Remove [', `stack.pop()`, ']'
    # 使用反單引號(` `)來代替 repr(), 把 String 的值用引號擴(kuò)起來, 而不僅顯示 String 的值

def viewstack():      # 定義一個(gè)顯示堆棧中的內(nèi)容的方法
    print stack

CMDs = {'u':pushit, 'o':popit, 'v':viewstack}
# 定義一個(gè) Dict 類型對象, 將字符映射到相應(yīng)的 function .可以通過輸入字符來執(zhí)行相應(yīng)的操作

def showmenu():      # 定義一個(gè)操作菜單提示方法
  pr = """
  p(U)sh
  p(O)p
  (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)生一個(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 中字符對應(yīng)的 functionName, 實(shí)現(xiàn)函數(shù)調(diào)用

if __name__ == '__main__':
  showmenu()

NOTE: 在堆棧數(shù)據(jù)結(jié)構(gòu)中, 主要應(yīng)用了 List 數(shù)據(jù)類型對象的 容器 和 可變 等特性, 表現(xiàn)在 List.append() 和 List.pop() 這兩個(gè)列表類型內(nèi)建函數(shù)的調(diào)用.

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

相關(guān)文章

最新評論

图木舒克市| 梅河口市| 洪江市| 四会市| 宜章县| 锡林郭勒盟| 安义县| 淮滨县| 建阳市| 烟台市| 兴山县| 水城县| 临汾市| 大洼县| 全南县| 普格县| 工布江达县| 宁强县| 广西| 赤水市| 刚察县| 铁岭县| 彝良县| 长白| 新乡市| 台南县| 泰兴市| 襄垣县| 梁平县| 泾川县| 汝阳县| 额济纳旗| 营山县| 大田县| 吉木乃县| 凤阳县| 海宁市| 洛川县| 靖西县| 华安县| 雅安市|