package com.demo.calculate; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import com.demo.calculate.bean.TreeNode; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class HuffManActivity extends AppCompatActivity { private int[] arr = new int[]{3,5,7,25,12,14,29,27}; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_huffman); findViewById(R.id.btn_hufuMan).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TreeNode huffManTree = createHuffManTree(); Log.i("tag",huffManTree.getValue()+"=====huffManTree======"); } }); } /** * 创建赫夫曼树 */ private TreeNode createHuffManTree() { List<TreeNode> nodes = new ArrayList<>(); for (int i = 0; i <arr.length ; i++) { nodes.add(new TreeNode(arr[i])); } //给数组进行排序 Collections.sort(nodes); the while (nodes.size ()>. 1) { TreeNode nodeLeft = nodes.get(0); TreeNode nodeRight = nodes.get(1); the TreeNode = new new parent the TreeNode (nodeLeft.getValue () + nodeRight.getValue ()); // remove the smallest two elements nodes.remove (nodeLeft); nodes.remove ( nodeRight); // Add a new element nodes.add (parent); } return nodes.get (0); } }
Algorithms - Huffman tree
Guess you like
Origin blog.csdn.net/xjz19930319/article/details/92760991
Recommended
Ranking