參考書籍:<演算法:圖解邏輯思維 + 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()) |
執行結果: