Python
 Computer >> コンピューター >  >> プログラミング >> Python

再帰を使用してスタックを反転する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」は、反転したスタックをコンソールに表示するために呼び出されます。


  1. 再帰を使用して数値が素数であるか素数でないかを検出するPythonプログラム

    数値が素数であるかどうか、または再帰手法を使用していないかどうかを確認する必要がある場合は、メソッドが定義され、「while」条件が使用されます。 再帰は、より大きな問題の小さなビットの出力を計算し、これらのビットを組み合わせて、より大きな問題の解決策を提供します。 例 以下は同じのデモンストレーションです- def check_prime(my_num, my_val = None):    if my_val is None:       my_val = my_num – 1    while my_v

  2. Pythonプログラムで文字列を逆にする方法は?

    Pythonには、文字列を逆にする関数が組み込まれていません。したがって、文字列を逆にするために独自のロジックを実装する必要があります。 さまざまな方法を使用して文字列を反転します。 FORループの使用 この方法の背後にある考え方は、文字列の最後のインデックスから0番目のインデックスまでの逆ループを使用することです。各反復で、反復の最後に反転された文字列を保持するために文字列の文字を追加します。 従う一般的な手順を見てみましょう- a:=新しい文字列 文字列の最後のインデックスから0番目のインデックスにループし、現在のインデックスで1 a =a+文字だけデクリメントします