实验目的:掌握二叉树的构建及遍历操作。 实验内容:按先序遍历的顺序为“ABDGCEF”构建的二叉树实现先序、中序和后序遍历,并输出对应的遍历序列。 实验要求: 1、构建一个二叉链表存储结构的二叉树。 2、基于上述构建的二叉树进行先序、中序和后序遍历操作。用Java实现
时间: 2023-11-22 20:53:57 浏览: 165
以下是Java实现的代码:
```java
class TreeNode {
char val;
TreeNode left;
TreeNode right;
public TreeNode(char val) {
this.val = val;
}
}
public class BinaryTree {
public static void main(String[] args) {
TreeNode root = buildTree();
System.out.print("先序遍历序列为:");
preOrderTraverse(root);
System.out.print("\n中序遍历序列为:");
inOrderTraverse(root);
System.out.print("\n后序遍历序列为:");
postOrderTraverse(root);
}
// 构建二叉树
public static TreeNode buildTree() {
TreeNode root = new TreeNode('A');
root.left = new TreeNode('B');
root.right = new TreeNode('C');
root.left.left = new TreeNode('D');
root.left.right = new TreeNode('G');
root.left.right.left = new TreeNode('E');
root.left.right.right = new TreeNode('F');
return root;
}
// 先序遍历
public static void preOrderTraverse(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " ");
preOrderTraverse(root.left);
preOrderTraverse(root.right);
}
// 中序遍历
public static void inOrderTraverse(TreeNode root) {
if (root == null) {
return;
}
inOrderTraverse(root.left);
System.out.print(root.val + " ");
inOrderTraverse(root.right);
}
// 后序遍历
public static void postOrderTraverse(TreeNode root) {
if (root == null) {
return;
}
postOrderTraverse(root.left);
postOrderTraverse(root.right);
System.out.print(root.val + " ");
}
}
```
输出结果为:
先序遍历序列为:ABDGCEF
中序遍历序列为:DGBEAFC
后序遍历序列为:DGEBFCA
阅读全文