亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現棧Stack

發布時間:2021-03-23 11:05:12 來源:億速云 閱讀:126 作者:小新 欄目:開發技術

這篇文章主要介紹Python如何實現棧Stack,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

什么是棧

想象一摞被堆起來的書,這就是棧。這堆書的特點是,最后被堆進去的書,永遠在最上面。從這堆書里面取一本書出來,取哪本書最方便?肯定是最上面那本。棧這種數據結構的特點就是如此:后進先出(Last In First Out - LIFO),即最后被堆進去的數據,最先被拿出來。

棧的Python實現

棧可以用順序表方式實現,也可以用鏈表方式實現。我大Python的內建數據結構太強大,可以用list直接實現棧,簡單快捷。人生苦短,我用Python。代碼如下:

class Stack(object):
  # 初始化棧為空列表
  def __init__(self):
    self.items = []
  # 判斷棧是否為空,返回布爾值
  def is_empty(self):
    return self.items == []
  # 返回棧頂元素
  def peek(self):
    return self.items[len(self.items) - 1]
  # 返回棧的大小
  def size(self):
    return len(self.items)
  # 把新的元素堆進棧里面(程序員喜歡把這個過程叫做壓棧,入棧,進棧……)
  def push(self, item):
    self.items.append(item)
  # 把棧頂元素丟出去(程序員喜歡把這個過程叫做出棧……)
  def pop(self, item):
    return self.items.pop()
if __name__ == __main__:
  # 初始化一個棧對象
  my_stack = Stack()
  # 把'h'丟進棧里
  my_stack.push('h')
  # 把'a'丟進棧里
  my_stack.push('a')
  # 看一下棧的大小(有幾個元素)
  print my_stack.size()
  # 打印棧頂元素
  print my_stack.peek()
  # 把棧頂元素丟出去,并打印出來
  print my_stack.pop()
  # 再看一下棧頂元素是誰
  print my_stack.peek()
  # 這個時候棧的大小是多少?
  print my_stack.size()
  # 再丟一個棧頂元素
  print my_stack.pop()
  # 看一下棧的大小
  print my_stack.size
  # 棧是不是空了?
  print my_stack.is_empty()
  # 哇~真好吃~
  print 'Yummy~'

Tips:

看完上面的代碼,聰明的同學一定知道了,Python里面實現棧,就是把list包裝成一個類,再添加一些方法作為棧的基本操作。其他的數據結構在Python中也是以類似的方式實現的。
那么,這里有一些有的沒的要說一下~

如果希望items[]是Stack類私有的屬性,這樣做就好了:

def __init__(self):
  self.__items = []

沒錯,就是在items前面加兩個下劃線__,在Python中,類的私有成員就是這樣定義噠~

如果希望限定Stack類的成員只有items,不要其他的怪蜀黍亂加成員,那么這樣做就好了:

class Stack(object):
  __slots__ = ('__items')

  def __init__(self):
    self.__items = []

這樣就安全多啦~

以上是“Python如何實現棧Stack”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

靖宇县| 苏尼特右旗| 禹城市| 武功县| 荥阳市| 石台县| 舞钢市| 武夷山市| 东平县| 高陵县| 潞西市| 汉源县| 商城县| 亳州市| 五河县| 营口市| 西乌珠穆沁旗| 东港市| 商城县| 哈巴河县| 彭山县| 齐河县| 岑巩县| 定襄县| 梅河口市| 阳江市| 汉阴县| 曲周县| 红原县| 手机| 屯留县| 芷江| 怀安县| 乌兰县| 乌海市| 兴城市| 科尔| 乐山市| 望城县| 沙洋县| 双峰县|