JavaScript Huffman 树
Huffman 树
给定 n 权值作为 n 个叶子节点,构造一棵二叉树,若这棵二叉树的带权路径长度达到最小,则称这样的二叉树为最优二叉 树,也称为 Huffman 树。
利用 Huffman 树对每一个字符编码,该编码又称为 Huffman 编码,Huffman 编码是一种前缀编码,即一个字符的编码 不是另一个字符编码的前缀。
性质:
-
对应一组权重构造出来的 Huffman 树一般不是唯一的
-
Huffman 树具有最小的带权路径长度
-
Huffman 树中没有度为1的结点
-
哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近
-
Huffman 树的带权路径长度 WPL 等于各叶子结点的带权路径长度之和
详细资料可以参考:
《数据结构和算法—— Huffman 树和 Huffman 编码》 《详细图解哈夫曼 Huffman 编码树》
更多面试题
如果你想了解更多的前端面试题,可以查看本站的WEB前端面试题 ,这里基本包涵了市场上的所有前端方面的面试题,也有一些大公司的面试图,可以让你面试更加顺利。
面试题 | ||
---|---|---|
HTML | CSS | JavaScript |
jQuery | Vue.js | React |
算法 | HTTP | Babel |
BootStrap | Electron | Gulp |
Node.js | 前端经验相关 | 前端综合 |
Webpack | 微信小程序 | - |
这些题库还在更新中,如果你有不错的面试题库欢迎分享给我,我整理后放上来;人人为我,我为人人,互帮互助,共同提高,祝大家都拿到心仪的Offer!