在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ Python棧
Python樹遍歷算法
Python雙端隊列
Python隊列
Python回溯
Python棧
Python數(shù)據(jù)結(jié)構(gòu)開發(fā)環(huán)境
Python數(shù)據(jù)結(jié)構(gòu)簡介
Python算法分析
Python圖遍歷算法
Python搜索算法
Python圖
Python鏈表
Python集合
Python元組
Python字典
Python矩陣
Python高級鏈表(雙向鏈表)
Python搜索樹
Python二維數(shù)組
Python堆
Python節(jié)點
Python排序算法
Python數(shù)據(jù)結(jié)構(gòu)
Python遞歸
Python列表
Python數(shù)組
Python算法設(shè)計
Python哈希表

Python棧

在英語詞典中,堆(Stack)表示將對象放在另一個對象上。 在這個數(shù)據(jù)結(jié)構(gòu)中分配內(nèi)存的方式是一樣的。 它以類似的方式存儲數(shù)據(jù)元素,類似在廚房中一堆盤子:一個在另一個之上存放。 所以堆棧數(shù)據(jù)數(shù)據(jù)允許操作的一端可以稱為棧頂。 可在棧頂上添加元素或僅從堆棧中移除元素。

在堆棧中,順序排列的最后一個元素將首先出現(xiàn),因為只能從堆棧頂部移除。 這種功能稱為后進先出(LIFO)功能。 添加和刪除元素的操作稱為PUSHPOP。 在下面的程序中,我們將它實現(xiàn)為addremove函數(shù)。首先聲明一個空列表并使用append()pop()方法來添加和刪除數(shù)據(jù)元素。

推入堆棧

class Stack:

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

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False
# Use peek to look at the top of the stack

    def peek(self):     
        return self.stack[0]

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.peek()
print(AStack.peek())
AStack.add("Wed")
AStack.add("Thu")
print(AStack.peek())

執(zhí)行上面示例代碼,得到以下結(jié)果 -

Mon
Mon

堆棧移除

只能從堆棧中移除數(shù)據(jù)元素,下面實現(xiàn)了一個可以實現(xiàn)這一功能的python程序。 以下程序中的remove函數(shù)返回最上面的元素。 首先通過計算堆棧的大小來檢查頂層元素,然后使用內(nèi)置的pop()方法找出最頂層的元素。參考以下代碼實現(xiàn) -

class Stack:

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

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False

# Use list pop method to remove element
    def remove(self):
        if len(self.stack) <= 0:
            return ("No element in the Stack")
        else:
            return self.stack.pop()

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
print(AStack.remove())
AStack.add("Wed")
AStack.add("Thu")
print(AStack.remove())

執(zhí)行上面示例代碼,得到以下結(jié)果 -

Tue
Thu

下一篇:Python矩陣