助你喫透那些年被捧上天的神祕算法(Python版④)

廢話環節

從接觸編程開始,就一直聽周圍年長一點的程序員討論,小小的年紀,腦袋裏充滿了大大的疑惑,每次都想上前詢問,何爲
棧的數據存儲結構可以是順序表,也可以是鏈表,本篇博客我們使用 Python 來實現順序棧
來自度孃的解釋(聽的雲裏霧裏的)
棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱爲棧頂,相對地,把另一端稱爲棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成爲新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成爲新的棧頂元素。
歪歪歪…,醒醒看完了,這就是
博主今天希望用Python語言爲大夥們講透
HaoXuan

棧(Stack)

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

HaoXuan

Stack基礎語法

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2020/3/19 13:01
# @Author  : HaoXuan
# @File    : 02_棧.py
# @Software: PyCharm
'''
棧底  1    2    3  棧頂
Stack()創建一個空的新棧,它不需要參數並且返回一個空棧。
push(item)將一個新項目添加到棧的頂部,它需要item做參數並返回任何內容。
pop()從棧中刪除頂部項,它不需要參數並返回item。棧被修改。
peek()從棧後返回頂部項,但不會刪除它。不需要參數,不修改棧。
isEmpty()測試棧是否爲空。不需要參數並且返回布爾值。
size()返回棧中的item數量。不需要參數並返回一個整數。

Stack:先進後出
'''

順序棧(框架)

class Stack():
    def __init__(self):
        self.items= []   #在程序中開闢一塊區域,構建一個空棧
    def push(self,item):
        self.items.append(item)
    def pop(self):
        return self.items.pop()   #從列表中pop出值
    def peek(self):
        return len(self.items)- 1                 #返回棧頂元素的索引
    def isEmpty(self):
        return self.items ==[]   #如果返回的是True則Stack爲空
    def size(self):
        return len(self.items)

測試程序

stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)

print('棧頂索引爲:',stack.peek())
print(stack.isEmpty())
print('元素個數爲:',stack.size())
print(stack.pop())
print(stack.pop())
print(stack.pop())

運行反饋

HaoXuan
博主個人認爲屬於一個預存儲,可以理解爲(一端操作,先進後出,後進先出)
希望本篇的基礎只是能夠幫到各位小夥伴,博主一直在努力寫好每一篇博客,每次的實例代碼都是博主親手測試,修改,並且對不好理解的部分進行了註釋,截取最簡單易懂的部分,進行發表,只希望大家能夠更好理解數據結構,我們一起加油💪奧裏給
HaoXuan

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