python實現棧的基本操作


1.棧:一種特殊的線性表,其實只允許在固定的一端進行插入或刪除操作。進行數據插入和刪除的一端稱為棧頂,另一端稱為棧底。不含任何元素的棧稱為空棧,棧又稱為后進先出的線性表。

特性棧:后進先出(LILO)特殊線性表
棧功能:將數據從一種序列改變為另一種序列

 

 

2.順序棧和順序表數據成員相同,不同之處: 順序棧的入棧和出棧操作只允許對當前棧頂進行操作

順序棧所有的的操作時間復雜度為O(1)
注意:面試中如果需要用到棧,封裝靜態棧。

3.棧結構實現
棧可以用順序表實現,也可以用鏈表實現。

4.棧的操作
Stack() 創建一個新的空棧
push(item) 添加一個新的元素item到棧頂
pop() 彈出棧頂元素
peek() 返回棧頂元素
is_empty() 判斷棧是否為空
size() 返回棧的元素個數

 

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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM