最优二叉查找树
2017-08-14 08:39
344 查看
转自:http://www.cnblogs.com/liuzhen1995/archive/2017/02/26/6452519.html
1 问题描述
在了解最优二叉查找树之前,我们必须先了解何为二叉查找树?引用自百度百科一段讲解:
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary
Search Tree),亦称二叉搜索树。
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
在二叉查找树的基础上,引出了一个最优二叉查找树的问题:它在查找树中所有节点的平均键值比较次数是最低的。(PS:如若对于最优二叉查找树的定义理解还是有点模糊,可以参考本文最后给出的参考资料中的链接)
2 解决方案
本文具体编码思想参考自《算法设计与分析基础》第三版,具体如下(PS:对于文中的具体思想,楼主自己是前后看了三四遍才整明白其具体思想,竟无语吟噎......,如若对于下面贴出的书中介绍无法理解,可以参考文末给出的参考资料的链接中,一位网友的博客讲解哦):具体代码如下:
4000
相关文章推荐
- 算法导论学习笔记(10)——动态规划之最优二叉查找树
- 算法导论15.5 最优二叉查找树
- 《算法导论》笔记 第15章 15.5 最优二叉查找树
- 动态规划4-最优二叉查找树
- 最优二叉查找树
- 算法导论第15章 动态规划-最优二叉查找树
- 最优二叉查找树(optimal BST)
- 最优二叉查找树
- 【算法学习】最优二叉查找树(动态规划)
- 【算法学习】最优二叉查找树(动态规划)
- 动态规划——最优二叉查找树
- 算法导论第十五章--最优二叉查找树
- 最优二叉查找树的详细分析,c++代码实现
- 动态规划方法生成最优二叉查找树
- 最优二叉查找树(动态规划)
- 算法导论之动态规划(最长公共子序列和最优二叉查找树)
- 构造最优二叉查找树的时间复杂度分析
- 第十五章动态规划之“最优二叉查找树”
- 动态规划算法-最长公共子序列和最优二叉查找树
- 最优二叉查找树(动态规划)