二叉搜索树的花费与总权怎么计算?关键字和伪关键字又是什么?与花费和总权有关吗?用实例眼神
二叉搜索树的花费是指对于一个节点,其深度乘以权值,再将所有节点的花费相加得到的结果。二叉搜索树的总权则是指所有节点的权值之和。
关键字是指在二叉搜索树中具有唯一性的标识,伪关键字则是指在二叉搜索树中虽然不具有唯一性,但可以作为参考用于优化树的构建。关键字和伪关键字都与花费和总权有关,因为它们会影响树的形态和深度,进而影响节点的花费和总权。
举个例子,假设有如下的关键字和权值:
| 关键字 | 权值 | | ------ | ---- | | 10 | 4 | | 5 | 2 | | 3 | 1 | | 8 | 2 | | 15 | 3 |
如果按照关键字构建二叉搜索树,则可能得到如下的树:
10
/ \
5 15
/ \
3 8
此时的花费为:
10*4 + 5*2 + 3*1 + 8*2 + 15*3 = 67
总权为:
4 + 2 + 1 + 2 + 3 = 12
如果使用伪关键字进行优化,则可能得到如下的树:
8
/ \
5 10
/ / \
3 9 15
此时的花费为:
8*2 + 5*2 + 3*1 + 10*4 + 9*1 + 15*3 = 78
总权为:
2 + 2 + 1 + 4 + 1 + 3 = 13
可以发现,虽然使用伪关键字优化后花费增加了,但总权也有所增加,因此需要综合考虑二者
原文地址: http://www.cveoy.top/t/topic/hfug 著作权归作者所有。请勿转载和采集!