เมื่อต้องการย้อนกลับโครงสร้างข้อมูลสแต็กโดยใช้การเรียกซ้ำ จะมีการกำหนดเมธอด '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' ถูกเรียกเพื่อแสดงสแต็กที่กลับด้านบนคอนโซล