溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在python項(xiàng)目中實(shí)現(xiàn)一個(gè)棧

發(fā)布時(shí)間:2021-04-06 17:08:09 來源:億速云 閱讀:142 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)怎么在python項(xiàng)目中實(shí)現(xiàn)一個(gè)棧,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

棧(stack),有些地方稱為堆棧,是一種容器,可存入數(shù)據(jù)元素、訪問元素、刪除元素,它的特點(diǎn)在于只能允許在容器的一端(稱為棧頂端指標(biāo),英語:top)進(jìn)行加入數(shù)據(jù)(英語:push)和輸出數(shù)據(jù)(英語:pop)的運(yùn)算。沒有了位置概念,保證任何時(shí)候可以訪問、刪除的元素都是此前最后存入的那個(gè)元素,確定了一種默認(rèn)的訪問順序。

由于棧數(shù)據(jù)結(jié)構(gòu)只允許在一端進(jìn)行操作,因而按照后進(jìn)先出(LIFO, Last In First Out)的原理運(yùn)作。

棧結(jié)構(gòu)實(shí)現(xiàn)

??梢杂庙樞虮韺?shí)現(xiàn),也可以用鏈表實(shí)現(xiàn)。

棧的操作

  • Stack() 創(chuàng)建一個(gè)新的空棧

  • push(item) 添加一個(gè)新的元素item到棧頂

  • pop() 彈出棧頂元素

  • peek() 返回棧頂元素

  • is_empty() 判斷棧是否為空

  • size() 返回棧的元素個(gè)數(shù)

示例:

class Stack(object):
  """棧"""
  def __init__(self):
     self.items = []
  def is_empty(self):
    """判斷是否為空"""
    return self.items == []
  def push(self, item):
    """加入元素"""
    self.items.append(item)
  def pop(self):
    """彈出元素"""
    return self.items.pop()
  def peek(self):
    """返回棧頂元素"""
    return self.items[len(self.items)-1]
  def size(self):
    """返回棧的大小"""
    return len(self.items)
if __name__ == "__main__":
  stack = Stack()
  stack.push("hello")
  stack.push("world")
  stack.push("itcast")
  print stack.size()
  print stack.peek()
  print stack.pop()
  print stack.pop()
  print stack.pop()

看完上述內(nèi)容,你們對(duì)怎么在python項(xiàng)目中實(shí)現(xiàn)一個(gè)棧有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI