1. 程式人生 > >python資料結構與演算法(10)

python資料結構與演算法(10)


棧(stack),有些地⽅稱為堆疊,是⼀種容器,可存⼊資料元素、訪問元 素、刪除元素,它的特點在於只能允許在容器的⼀端(稱為棧頂端指標,英 語:top)進⾏加⼊資料(英語:push)和輸出資料(英語:pop)的運算。 沒有了位置概念,保證任何時候可以訪問、刪除的元素都是此前最後存⼊的 那個元素,確定了⼀種預設的訪問順序。
由於棧資料結構只允許在⼀端進⾏操作,因⽽按照後進先出(LIFO, Last In First Out)的原理運作。
python資料結構與演算法(10)
棧結構實現
棧可以⽤順序表實現,也可以⽤連結串列實現。
棧的操作
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()

執⾏過程如下:

python資料結構與演算法(10)