二叉排序树 插入,删除和查找的效率都比较高(创建时与二叉树相同) 二叉排序树又称为二叉排序树,若不为空树,则有以下性质: 若左子树不为空,则左子树上所有结点值均小于根节点的值 若右子树不为空,则右子树上所有结点值均小于根节点的值 他的左右子树也是二叉树排序树(递归) 查找:二叉树的中序遍历(从小到大 ...
分类:
编程语言 时间:
2020-05-11 23:36:00
阅读次数:
80
静态查找 数据集合稳定,不需要添加,删除元素的查找 对于静态查找:可以用线性表结构组织数据,这样便可使用顺序查找算法,如果再对关键字进行排序,则可使用折半查找法或斐波那契查找法等来提高效率 动态查找 数据集合在查找的过程中需要同时添加或删除元素的查找 对于动态查找:可考虑使用二叉排序树的查找技术,另 ...
分类:
其他好文 时间:
2020-05-11 15:11:36
阅读次数:
82
题目非常简单,之所以记录一下是因为总是忽略中序遍历的特性:排序二叉树中序遍历会得到一个有序数组。该特性很实用也很神奇,就像一颗满二叉排序树的根节点必然是对应有序数组的中点一样。该特性可以帮助我们更好的理解排序树的结构。 List<Integer> re=new LinkedList<Integer> ...
分类:
其他好文 时间:
2020-05-11 01:04:03
阅读次数:
56
解题(失败) 思路 分别遍历左右子树,用pre存储上一个节点,作比较 代码 本想把左右子树判断函数合并,但运行结果是错的,问题复杂化了,思路有问题 优解 思路 中序遍历时,判断当前节点是否大于中序遍历的前一个节点,如果大于,说明满足BST,继续遍历;否则直接返回false 代码 小结 做题前缺乏思考 ...
分类:
编程语言 时间:
2020-05-05 23:22:34
阅读次数:
84
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 思路: ...
分类:
其他好文 时间:
2020-05-05 11:11:57
阅读次数:
65
一、二叉查找/搜索/排序树BST (binary search/sort tree) 或者是一棵空树; 或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值; 若它的右子树上所有结点的值均大于它的根节点的值; 它的左、右子树也分别为二叉排序树。 二、平衡二叉树( ...
分类:
其他好文 时间:
2020-05-04 21:26:00
阅读次数:
67
二叉排序树 二叉排序树是为了实现数据的有序排列,并可方便的对树中的数据进行插入和删除操作,提高查找效率。 性质: 若它的左子树不为空,则左子树上的所有值均小于根结点的值 若它的右子树不为空,则右子树上的所有值均大于根结点的值 它的左右子树也分别为二叉排序树 下面说说二叉排序树的查找,插入,删除操作实 ...
分类:
编程语言 时间:
2020-05-02 18:31:34
阅读次数:
55
二叉排序树 二叉排序树介绍: 比如针对前面的数据 (7, 3, 10, 12, 5, 1, 9) ,对应的二叉排序树为: 二叉排序树创建和遍历: 二叉排序树的删除: 二叉排序树的删除情况比较复杂,有下面三种情况需要考虑: 4) 操作的思路分析: 代码实现: ...
分类:
编程语言 时间:
2020-04-28 00:14:25
阅读次数:
58
一、思维导图: 二、重要概念: 1、二叉树的五种基本形态: 2、前、中、后序遍历: 1.1前序遍历 根节点 左子树 右子树 1.2中序遍历 左子树 根节点 右子树 1.3后序遍历 左子树 右子树 根节点 2、ASL计算: 如图所示的二叉排序树,其成功的平均查找长度是 ; 不成功的平均查找长度是 。 ...
分类:
编程语言 时间:
2020-04-26 21:14:49
阅读次数:
70
二叉排序树 1. 基本介绍 二叉排序树:BST,对于二叉排序树的任何一个非叶子结点,要求左子结点的值比当前结点的值小,右子结点的值比当前结点的值大 特别说明:若有相同的值,可以将该结点放在左子结点或右子结点 2. 二叉排序树的创建和遍历 ...
分类:
编程语言 时间:
2020-04-24 20:17:44
阅读次数:
62