এই আর্টিকেলে আমরা বুঝব কীভাবে ইনঅর্ডার (Inorder) ট্রি ট্রাভার্সাল করা হয়। ইনঅর্ডার ট্রাভার্সালে, প্রতিটি নোড সাবট্রি-এর মাঝপথে প্রসেস হয়। সহজ কথায়, বাম সাবট্রি ভিজিট করুন, তারপর নোড, তারপর ডান সাবট্রি।
ধরুন ইনপুট:
Run the program
চাহিদা আউটপুট:
The In-Order traversal of the tree_object is: 5->12->6->1->9->
অ্যালগরিদম
Step 1 - START Step 2 - ডেটা স্পেসিফিকেশন সহ একটি ক্লাস পূর্বে ডিফাইন করা আছে Step 3 - ক্লাসের নতুন ইনস্ট্যান্স তৈরি করুন Step 4 - ইনস্ট্যান্সটিকে প্রাসঙ্গিক মান দিয়ে ইনিশিয়ালাইজ করুন Step 5 - ইনঅর্ডার ট্রাভার্সাল করার মেথড আহ্বান করুন Step 6 - ফলাফল প্রদর্শন Step 7 - STOP
উদাহরণ ১
এখানে ইন-অর্ডার ট্রাভার্সালের জন্য রিকার্সিভ মেথড ব্যবহার করা হয়েছে।
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->
উদাহরণ ২
এখানে ইন-অর্ডার ট্রাভার্সালের জন্য নন-রিকার্সিভ (স্ট্যাক-ভিত্তিক) মেথড ব্যবহার করা হয়েছে।
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 temp_stack = new Stack();
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