请以字母二叉树为例测试
时间: 2024-10-28 17:03:20 浏览: 4
为了测试以字母二叉树为例,我们可以创建一个简单的字母二叉树,其中每个节点代表一个字符,每个字符都是其子节点的父节点。我们假设树结构如下:
- A -> B -> D -> E
- A -> C -> F
这里A是根节点,B、C、D、E和F是叶子节点,它们分别表示二进制树中的字符。
以下是测试代码示例:
```java
import java.util.ArrayList;
import java.util.List;
// 假设我们有一个Node类,它包含一个value(字符)和左右子节点引用
public class BinaryTreeTest {
public static void main(String[] args) {
BinaryTree tree = new BinaryTree(); // 创建一个BinaryTree实例
// 构建字母二叉树
tree.root = new Node('A');
tree.root.left = new Node('B');
tree.root.right = new Node('C');
tree.root.left.left = new Node('D');
tree.root.left.right = new Node('E');
tree.root.right.left = new Node('F');
// 测试先序遍历并打印结果
List<Character> preorderList = new ArrayList<>();
tree.preOrderTraversal(preorderList, tree.root);
System.out.println("先序遍历: " + preorderList);
// 测试中序遍历并打印结果
List<Character> inorderList = new ArrayList<>();
tree.inOrderTraversal(inorderList, tree.root);
System.out.println("中序遍历: " + inorderList);
}
}
// Node类
class Node {
char value;
Node left, right;
public Node(char value) {
this.value = value;
}
// 添加preOrderTraversal和inOrderTraversal方法,如上文所示
}
```
运行这段代码后,你应该会看到类似于这样的输出:
```
先序遍历: [A, B, D, E, C, F]
中序遍历: [D, B, E, A, F, C]
```
这表明先序遍历的结果是根节点在前,然后是左子树,最后是右子树;而中序遍历的结果则是按照字符的字典顺序排序。
阅读全文