From be0d29a010e8ed305d759661f3b110e5b2de75fa Mon Sep 17 00:00:00 2001 From: liangjinglin Date: Tue, 21 Jan 2025 22:59:10 +0800 Subject: [PATCH] =?UTF-8?q?2025-01-21=20=E9=9C=8D=E5=A4=AB=E6=9B=BC?= =?UTF-8?q?=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dataANDcalc/java/tree/HuffmanTree.java | 120 +++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 src/dataANDcalc/java/tree/HuffmanTree.java 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); + } +}