เมื่อต้องการย้อนกลับโครงสร้างข้อมูลสแต็กโดยใช้การเรียกซ้ำ จะมีการกำหนดเมธอด 'stack_reverse' นอกเหนือจากวิธีการเพิ่มมูลค่า ลบค่า และพิมพ์องค์ประกอบของสแต็ก
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ตัวอย่าง
class Stack_structure: def __init__(self): self.items = [] def check_empty(self): return self.items == [] def push_val(self, data): self.items.append(data) def pop_val(self): return self.items.pop() def print_it(self): for data in reversed(self.items): print(data) def insert_bottom(instance, data): if instance.check_empty(): instance.push_val(data) else: deleted_elem = instance.pop_val() insert_bottom(instance, data) instance.push_val(deleted_elem) def stack_reverse(instance): if not instance.check_empty(): deleted_elem = instance.pop_val() stack_reverse(instance) insert_bottom(instance, deleted_elem) my_instance = Stack_structure() data_list = input('Enter the elements to add to the stack: ').split() for data in data_list: my_instance.push_val(int(data)) print('The reversed stack is:') my_instance.print_it() stack_reverse(my_instance) print('The stack is:') my_instance.print_it()
ผลลัพธ์
Enter the elements to add to the stack: 23 56 73 81 8 9 0 The reversed stack is: 0 9 8 81 73 56 23 The stack is: 23 56 73 81 8 9 0
คำอธิบาย
-
คลาส 'Stack_structure' ถูกสร้างขึ้นเพื่อเริ่มต้นรายการว่าง
-
วิธีการ 'check_empty' ถูกกำหนดเพื่อดูว่าสแต็กว่างเปล่าหรือไม่
-
มีการกำหนดวิธีการอื่นที่เรียกว่า "push_val" ซึ่งเพิ่มองค์ประกอบลงในสแต็ก
-
มีการกำหนดวิธีการอื่นที่ชื่อว่า 'pop_val' เพื่อลบองค์ประกอบออกจากสแต็ก
-
มีการกำหนดวิธีการชื่อ 'print_it' ที่ช่วยพิมพ์องค์ประกอบของสแต็ก
-
มีการกำหนดเมธอดที่ชื่อว่า 'insert_bottom' ซึ่งเพิ่มองค์ประกอบที่ด้านล่างของสแต็ก แทนที่จะเพิ่มไปที่ด้านบนโดยค่าเริ่มต้น
-
มีการกำหนดวิธีการอื่นที่ชื่อว่า 'stack_reverse' ซึ่งจะช่วยย้อนกลับสแต็กที่กำหนด
-
อินสแตนซ์ของ 'Stack_structure' นี้ถูกกำหนดไว้แล้ว
-
องค์ประกอบของสแต็กถูกพรากไปจากผู้ใช้
-
มีการทำซ้ำและมีการเรียกใช้เมธอดเพื่อเพิ่มมูลค่าให้กับสแต็กและพิมพ์บนคอนโซล
-
ตอนนี้ 'stack_reverse' ถูกเรียกในรายการนี้
-
'print_it' ถูกเรียกเพื่อแสดงสแต็กที่กลับด้านบนคอนโซล