Java 程序执行中序树遍历
javacampus interviewserver side programmingprogramming更新于 2024/8/8 19:13:00
在本文中,我们将了解如何执行中序树遍历。在中序遍历中,每个节点都在子树之间进行处理。简单来说,访问左子树、节点,然后访问右子树。
下面是相同的演示 −
假设我们的输入是 −
Run the program
期望的输出将是 −
tree_object 的中序遍历为: 5->12->6->1->9->
算法
步骤 1 - 开始 步骤 2 - 预先定义具有数据规范的类。 步骤 3 - 创建该类的新实例。 步骤 4 - 使用相关值初始化实例。 步骤 5 - 调用方法执行中序遍历。 步骤 6 - 显示结果 步骤 7 - 停止
示例 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; } } public 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