python 棧的簡單實現

棧(stacks)是一種數據結構,是一種只能在一端進行插入和刪除操作的特殊線性表, 它按照先進後出的原則存儲數據(Last In First Out - LIFO)。

  • 代碼(使用list):

    class Stack(object):
        # 初始化
        def __init__(self):
            self.items = []
        # 判斷是否爲空
        def is_empty(self):
            return self.items == []
        # 返回棧頂元素
        def peek(self):
            if self.is_empty():
                raise KeyError("stack is None")
            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):
            if self.is_empty():
                raise KeyError("stack is None")
            return self.items.pop()
    
    if __name__ == '__main__' :
        a_stack = Stack()
        # 插入元素
        a_stack.push('一')
        a_stack.push('二')
        a_stack.push('三')
        
        print(a_stack.size())    # 3
        print(a_stack.peek())    # 三
        print(a_stack.pop())     # 三
        print(a_stack.peek())    # 二
        print(a_stack.size())    # 2
        print(a_stack.is_empty())  # False
        a_stack.__init__()
        print(a_stack.is_empty())  # True
    

    本文鏈接:時光不寫博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章