インオーダーツリートラバーサルを実行するJavaプログラム
この記事では、順序ツリートラバーサルを実行する方法を理解します。 InOrderトラバーサルでは、各ノードはサブツリー間で処理されます。簡単に言うと、左側のサブツリー、ノード、右側のサブツリーにアクセスします。
以下は同じのデモンストレーションです-
入力がであると仮定します −
Run the program
必要な出力は −
The In-Order traversal of the tree_object is: 5->12->6->1->9->
アルゴリズム
Step 1 - START Step 2 - A class with the data specifications is previously defined. Step 3 - Create a new instance of the class. Step 4 - Initialize the instance with relevant values. Step 5 - Invoke the method to perform inorder traversal. Step 6 - Display the result Step 7 - Stop
例1
ここでは、順序どおりのトラバーサルに再帰的な方法を使用しました。
class Node { int item; Node left_node, right_node; public Node(int key) { item = key; left_node = right_node = null; } } public class Tree { Node root; Tree() { root = null; } void inOrder(Node node) { if (node == null) return; inOrder(node.left_node); System.out.print(node.item + "->"); inOrder(node.right_node); } public static void main(String[] args) { Tree tree_object = new Tree(); System.out.println("A tree_object object is defined: "); tree_object.root = new Node(1); tree_object.root.left_node = new Node(12); tree_object.root.right_node = new Node(9); tree_object.root.left_node.left_node = new Node(5); tree_object.root.left_node.right_node = new Node(6); System.out.println("The In-Order traversal of the tree_object is: "); tree_object.inOrder(tree_object.root); } }
出力
A tree_object object is defined: The In-Order traversal of the tree_object is: 5->12->6->1->9->
例2
ここでは、順序どおりのトラバーサルに非再帰的な方法を使用しています。
import java.util.Stack; class Node { int data; Node left_node, right_node; public Node(int item) { data = item; left_node = right_node = null; } } class tree { Node root; void inorder() { if (root == null) return; Stack<Node> temp_stack = new Stack<Node>(); Node current_node = root; while (current_node != null || temp_stack.size() > 0) { while (current_node != null) { temp_stack.push(current_node); current_node = current_node.left_node; } current_node = temp_stack.pop(); System.out.print(current_node.data + " "); current_node = current_node.right_node; } } public static void main(String args[]) { tree tree = new tree(); System.out.println("A tree_object object is defined: "); tree.root = new Node(1); tree.root.left_node = new Node(2); tree.root.right_node = new Node(3); tree.root.left_node.left_node = new Node(4); tree.root.left_node.right_node = new Node(5); System.out.println("The In-Order traversal of the tree_object is: "); tree.inorder(); } }
出力
A tree_object object is defined: The In-Order traversal of the tree_object is: 4 2 5 1 3
-
Pythonでn-aryツリーの直径を見つけるプログラム
仮に、n-aryツリーが与えられ、ツリーの直径を決定すると言われているとします。ツリーの直径は、ツリーの任意の2つのリーフノード間に存在する最長のパスです。木の直径を表す整数値を見つけて返す必要があります。 したがって、入力が次のような場合 その場合、出力は3になります。 65で構成されます(図では赤い線でマークされています)。パスの長さは3です。 これを解決するには、次の手順に従います- ans:=1 関数depth()を定義します。これが定着します ルートが空でない場合は、 0を返す 子:=値0、0を含む新しいリスト temp_chil
-
Pythonでn-aryツリーのルートを見つけるプログラム
配列内のn-aryツリーのノードが与えられたとします。ツリーを再構築して、ツリーのルートノードを見つけて返す必要があります。返されたノードから、ツリー全体をプレオーダー表記で表示する必要があります。 したがって、入力が次のような場合 その場合、出力は次のようになります [14, 27, 32, 42, 56, 65] ツリーのルートを使用して、ツリーのプレオーダートラバーサルを表示します。したがって、出力はツリーのプレオーダートラバーサルです。 これを解決するには、次の手順に従います- indegree:=整数値を含む新しいマップ ツリー内のノードごとに、実行します