Python-data-structure-python-tree-traversal-algorithms
Python-ツリートラバーサルアルゴリズム
トラバーサルは、ツリーのすべてのノードを訪問するプロセスであり、それらの値も出力する場合があります。 すべてのノードはエッジ(リンク)を介して接続されているため、常にルート(ヘッド)ノードから開始します。 つまり、ツリー内のノードにランダムにアクセスすることはできません。 私たちがツリーを横断するために使用する3つの方法があります-
- 順番通りのトラバーサル
- 先行予約のトラバーサル
- 注文後のトラバーサル
順番通りのトラバーサル
この走査方法では、左のサブツリーが最初に訪問され、次にルート、次に右のサブツリーが訪問されます。 すべてのノードがサブツリー自体を表す場合があることを常に覚えておく必要があります。
以下のpythonプログラムでは、Nodeクラスを使用して、ルートノードと左右のノードのプレースホルダーを作成します。 次に、ツリーにデータを追加する挿入関数を作成します。 最後に、空のリストを作成し、最初に左ノードを追加してからルートまたは親ノードを追加することで、Inorderトラバーサルロジックを実装します。 最後に、左ノードが追加され、Inorderトラバーサルが完了します。 このプロセスは、すべてのノードがトラバースされるまでサブツリーごとに繰り返されることに注意してください。
上記のコードが実行されると、次の結果が生成されます-
先行予約のトラバーサル
この走査方法では、ルートノードが最初に訪問され、次に左のサブツリー、最後に右のサブツリーが訪問されます。
以下のpythonプログラムでは、Nodeクラスを使用して、ルートノードと左右のノードのプレースホルダーを作成します。 次に、ツリーにデータを追加する挿入関数を作成します。 最後に、空のリストを作成し、最初にルートノードを追加してから左側のノードを追加することにより、事前順序走査ロジックを実装します。 最後に、正しい順序のノードを追加して、先行予約のトラバースを完了します。 このプロセスは、すべてのノードがトラバースされるまでサブツリーごとに繰り返されることに注意してください。
上記のコードが実行されると、次の結果が生成されます-
注文後のトラバーサル
このトラバーサル方式では、ルートノードが最後にアクセスされるため、名前が付けられます。 最初に左のサブツリー、次に右のサブツリー、最後にルートノードを走査します。
以下のpythonプログラムでは、Nodeクラスを使用して、ルートノードと左右のノードのプレースホルダーを作成します。 次に、ツリーにデータを追加する挿入関数を作成します。 最後に、空のリストを作成し、最初に左側のノードを追加してから右側のノードを追加することにより、ポストオーダートラバーサルロジックを実装します。 最後に、ルートまたは親ノードが追加され、ポストオーダートラバーサルが完了します。 このプロセスは、すべてのノードがトラバースされるまでサブツリーごとに繰り返されることに注意してください。
上記のコードが実行されると、次の結果が生成されます-