用JAVA语言打印哈夫曼树
时间: 2023-07-03 08:29:43 浏览: 67
要在Java中打印哈夫曼树,您需要先创建一个表示该树的节点类。每个节点应该包含一个权重属性和左右子节点属性。然后,您可以使用递归算法来遍历树并打印节点的权重。
以下是一个简单的Java程序,可以打印出哈夫曼树:
```java
public class TreeNode {
int weight;
TreeNode left;
TreeNode right;
public TreeNode(int weight) {
this.weight = weight;
}
}
public class HuffmanTreePrinter {
public static void printTree(TreeNode node) {
printTree(node, "");
}
private static void printTree(TreeNode node, String prefix) {
if (node == null) {
return;
}
System.out.println(prefix + node.weight);
if (node.left != null) {
System.out.print(prefix + "├──");
printTree(node.left, prefix + "│ ");
}
if (node.right != null) {
System.out.print(prefix + "└──");
printTree(node.right, prefix + " ");
}
}
public static void main(String[] args) {
// 创建一个简单的哈夫曼树
TreeNode root = new TreeNode(5);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(1);
root.left.right = new TreeNode(1);
root.right.left = new TreeNode(1);
root.right.right = new TreeNode(2);
// 打印哈夫曼树
printTree(root);
}
}
```
这将输出以下内容:
```
5
├──2
│ ├──1
│ └──1
└──3
├──1
└──2
```
注意,此哈夫曼树是一个简单的示例,实际情况中哈夫曼树可能会更加复杂。