使用递归反转堆栈的 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 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' 被调用以在控制台上显示反向堆栈。

以上是 使用递归反转堆栈的 Python 程序 的全部内容, 来源链接: utcz.com/z/322800.html

回到顶部