树的路径长度

树的路径长度是指“从树根到每一个节点的路径长度的总和”,相同节点个数下,完全二叉树就是这种路径长度最短的二叉树,注意这是对于二叉树而言。

注意上述是说从树根到每一个节点的路径长的总和,如下图(图片来自):
这里写图片描述

该树的路径长度为:(AB)+(AB)+(BD)+(AC)+(AC)+(CE)+(AC)+(CF)

然而事实上,如果单说路径长度而不带权,则权重都是相同的,所以上述式子不必写的那么麻烦。
那如果是带权路径长度该如何计算呢?

带权路径长度 = ∑(节点的权*节点的深度)

以上图为例,只对D节点进行说明,其他都一样
D节点的带权路径长度为 D的权*D的深度,假设深度从0开始算起,那么A的深度为0,B的为1,D的为2。
那么结果就为:D的权*2,而不是A的权+B的权+D的权
而该二叉树的带权路径长度则是每一个节点这样加起来即可

//值得注意的地方就是要区别于哈夫曼树的带权路径长度



欢迎大家加入QQ群一起交流讨论,「吟游」程序人生——YinyouPoet

posted @ 2018-01-24 12:25  _吟游诗人  阅读(4518)  评论(0编辑  收藏  举报