使用递归反转堆栈的 Python 程序
当需要使用递归来反转堆栈数据结构时,除了添加值、删除值和打印堆栈元素的方法之外,还定义了“stack_reverse”方法。
以下是相同的演示 -
示例
class Stack_structure:输出结果def __init__(self):
self.items= []
def check_empty(self):
returnself.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 0The 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' 被调用以在控制台上显示反向堆栈。
以上是 使用递归反转堆栈的 Python 程序 的全部内容, 来源链接: utcz.com/z/322800.html