欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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()`, ']'
    # 使用反單引號(hào)(` `)來代替 repr(), 把 String 的值用引號(hào)擴(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)文章

  • 詳解解Django 多對多表關(guān)系的三種創(chuàng)建方式

    詳解解Django 多對多表關(guān)系的三種創(chuàng)建方式

    本文主要介紹了詳解解Django 多對多表關(guān)系的三種創(chuàng)建方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Python全棧之強(qiáng)制轉(zhuǎn)換

    Python全棧之強(qiáng)制轉(zhuǎn)換

    這篇文章主要為大家介紹了Python強(qiáng)制轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python開發(fā)準(zhǔn)備工作之配置虛擬環(huán)境(非常重要)

    python開發(fā)準(zhǔn)備工作之配置虛擬環(huán)境(非常重要)

    這篇文章主要介紹了python開發(fā)準(zhǔn)備工作之配置虛擬環(huán)境(非常重要),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • Python實(shí)現(xiàn)PS濾鏡特效Marble Filter玻璃條紋扭曲效果示例

    Python實(shí)現(xiàn)PS濾鏡特效Marble Filter玻璃條紋扭曲效果示例

    這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡特效Marble Filter玻璃條紋扭曲效果,涉及Python基于skimage庫實(shí)現(xiàn)圖形條紋扭曲效果的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 11個(gè)案例講透Python函數(shù)參數(shù)小結(jié)

    11個(gè)案例講透Python函數(shù)參數(shù)小結(jié)

    本文主要介紹了11個(gè)案例講透Python函數(shù)參數(shù)小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python可視化神器pyecharts繪制漏斗圖

    Python可視化神器pyecharts繪制漏斗圖

    這篇文章主要介紹了Python可視化神器pyecharts繪制漏斗圖,漏斗圖是由Light等在1984年提出,一般以單個(gè)研究的效應(yīng)量為橫坐標(biāo),樣本含量為縱坐標(biāo)做的散點(diǎn)圖
    2022-07-07
  • Python基于類路徑字符串獲取靜態(tài)屬性

    Python基于類路徑字符串獲取靜態(tài)屬性

    這篇文章主要介紹了Python基于類路徑字符串獲取靜態(tài)屬性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 簡單了解Python讀取大文件代碼實(shí)例

    簡單了解Python讀取大文件代碼實(shí)例

    這篇文章主要介紹了簡單了解Python讀取大文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python PyQt5運(yùn)行程序把輸出信息展示到GUI圖形界面上

    Python PyQt5運(yùn)行程序把輸出信息展示到GUI圖形界面上

    這篇文章主要介紹了Python PyQt5運(yùn)行程序把輸出信息展示到GUI圖形界面上,本文通過截圖實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python之Anaconda啟動(dòng)過程中的異常錯(cuò)誤問題及解決

    Python之Anaconda啟動(dòng)過程中的異常錯(cuò)誤問題及解決

    這篇文章主要介紹了Python之Anaconda啟動(dòng)過程中的異常錯(cuò)誤問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評(píng)論