diff --git a/src/dataANDcalc/java/tree/HuffmanTree.java b/src/dataANDcalc/java/tree/HuffmanTree.java new file mode 100644 index 0000000..8d5a7f2 --- /dev/null +++ b/src/dataANDcalc/java/tree/HuffmanTree.java @@ -0,0 +1,120 @@ +package tree; + +public class HuffmanTree { + + private TreeNode[] arr; + + private TreeNode huffTree; + + public HuffmanTree(int[] arr){ + this.arr = new TreeNode[arr.length]; + for(int i=0; i=0 && temp.node < arr[index].node){ + arr[index+gap] = arr[index]; + index -= gap; + } + //将当前数插入到下标+gap的位置 + arr[index+gap] = temp; + } + if (gap == 1){ + break; + } + } + } + + private void middleIterator(TreeNode treeNode){ + if(treeNode == null){ + System.out.println("当前节点为空"); + return; + } + + if (treeNode.left!= null){ + middleIterator(treeNode.left); + } + + System.out.println(treeNode.node); + + if (treeNode.right!= null){ + middleIterator(treeNode.right); + } + } + + public static class TreeNode{ + private int node; + + private TreeNode left; + + private TreeNode right; + + public TreeNode(int node){ + this.node = node; + } + + private void createHuffTreeNode(TreeNode left, TreeNode right){ + this.left = left; + this.right = right; + } + } + + public static void main(String[] args) { + int[] arr = new int[]{13,7,8,3,29,6,1}; + HuffmanTree huffmanTree = new HuffmanTree(arr); + huffmanTree.createHuffTree(); + huffmanTree.middleIterator(huffmanTree.huffTree); + } +}