เมื่อต้องการนำ Stack มาใช้งานใน Python สามารถสร้างคลาส Stack ที่มีเมธอด push (เพิ่ม), pop (ลบ), และตรวจสอบว่าว่างหรือไม่
โค้ดตัวอย่าง
class Stack_struct:
def __init__(self):
self.items = []
def check_empty(self):
return self.items == []
def add_elements(self, my_data):
self.items.append(my_data)
def delete_elements(self):
return self.items.pop()
my_instance = Stack_struct()
while True:
print('Push ')
print('Pop')
print('Quit')
my_input = input('What operation would you like to perform? ').split()
my_op = my_input[0].strip().lower()
if my_op == 'push':
my_instance.add_elements(int(my_input[1]))
elif my_op == 'pop':
if my_instance.check_empty():
print('The stack is empty')
else:
print('The deleted value is:', my_instance.delete_elements())
elif my_op == 'quit':
break
ผลลัพธ์ตัวอย่าง
PushPop Quit What operation would you like to perform? Push 6 Push Pop Quit What operation would you like to perform? Push 8 Push Pop Quit What operation would you like to perform? Push 34 Push Pop Quit What operation would you like to perform? Pop The deleted value is: 6 Push Pop Quit
คำอธิบาย
คลาส
Stack_structใช้ list เป็นโครงสร้างข้อมูลภายในadd_elements(push): เพิ่มข้อมูลท้ายลิสต์append()— O(1)delete_elements(pop): ลบข้อมูลท้ายลิสต์pop()— O(1)โปรแกรมรับคำสั่งจากผู้ใช้แบบ interactive
ข้อสังเกต: ผลลัพธ์ตัวอย่างแสดงคำสั่ง Psuh (สะกดผิด) หลายครั้ง แต่โปรแกรมตรวจสอบ my_op == 'push' ดังนั้นคำสั่งที่สะกดผิดจะไม่ทำงาน — อาจเป็นข้อผิดพลาดในการบันทึกผลลัพธ์ต้นฉบับ
ใน Python จริง: list เองก็ใช้เป็น stack ได้เลย (append = push, pop = pop) ไม่ต้องสร้างคลาสใหม่ก็ได้