6.8.1 最优树的定义 最优树,又称赫夫曼树(Huffman Tree)是一类带权路径长度最短的树,本节仅限于讨论最优二叉树。 首先介绍路径和路径长度的概念。由从树的根结点到其余结点的分支构成一条路径,路径上的分支数目称路径长度。一般情况下,树的路径长度指的是从树根到树中其余每个结点的路径长度之和。6.2.2节中定义的完全二叉树就是这种路径长度最短的二叉树。 结点的带权路径长度则定义为从树根到该结点之间的路径长度与该结点上所带权值的乘积。假设树上有 n 个叶子结点,且每个叶子结点上带有权值为 ![]() ![]() 其中 ![]() ![]() 假设有 n 个权值{ ![]() ![]() ![]() ![]() |
最优树并不特指二叉树,但"带权路径长度最短 "是在"度相同"的树中比较而得的结果,因此有最优二叉树、最优三叉树之称等等。 |
|||
![]() WPL = 7 ![]() ![]() ![]() ![]() ![]() WPL = 2 ![]() ![]() ![]() ![]() ![]() WPL = 6 ![]() ![]() ![]() ![]() ![]() WPL = 2 ![]() ![]() ![]() ![]() ![]() 其中以左下图中二叉树的带权路径长度为最小。可以验证,它恰为最优二叉树,即在所有叶子结点带权为5、6、2、9、7的二叉树中,带权路径长度的最小值为65。 |
![]() |