2023年1月28日 星期六

用百香果品種來設計堆疊類別的資料容器

參考書籍:<演算法:圖解邏輯思維 + Python程式實作 王者歸來>

前一篇文章有提到利用串列來實現堆疊的概念,本篇則是來學習設計類別。在物件導向程式設計,類別和物件是相當重要的,類別就像是蓋房子的藍圖,而物件則是依據這張藍圖所蓋出來的房子。類別是抽象的資料型態,而物件則是實際上存在電腦的記憶體中。

本篇一樣沿用台灣百香果的品種,我們就利用百香果品種來設計一個堆疊的類別,我們實作四個函式分別是初始化__init__()、將元素放入堆疊push()、從堆疊中取出元素、取出堆疊容器有多少元素size()。

範例1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
class Stack():
    def __init__(self):
        self.stack=[]

    def push(self, data):
        self.stack.append(data)

    def pop(self):
        return self.stack.pop()

    def size(self):
        return len(self.stack)

stack = Stack()
passionFruits = ['台農1號', '滿天星', '黃金百香果']
for passionfruit in passionFruits:
    stack.push(passionfruit)
    print(passionfruit, "放到百香果種類的堆疊容器")

print("百香果的種類有", stack.size(), "種")

執行結果 :


範例2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Stack():
    def __init__(self):
        self.stack=[]

    def push(self, data):
        self.stack.append(data)

    def pop(self):
        return self.stack.pop()

    def size(self):
        return len(self.stack)

    def isEmpty(self):
        return self.stack == []

stack = Stack()
passionFruits = ['台農1號', '滿天星', '黃金百香果']
for passionfruit in passionFruits:
    stack.push(passionfruit)
    print(passionfruit, "放到百香果種類的堆疊容器")

print("百香果的種類有", stack.size(), "種")
while not stack.isEmpty():
    print("從百香果種類的堆疊容器中取出", stack.pop())

執行結果:


沒有留言:

張貼留言