使用递归反转栈的Python程序
当需要使用递归反转栈数据结构时,除了添加值、删除值和打印栈元素的方法外,还定义了一个“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”以在控制台上显示反转的栈。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP