二叉排序树中进行查找的效率与什么有关_二叉排序树的要求

二叉排序树中进行查找的效率与什么有关_二叉排序树的要求数据结构笔记二叉查找树(一)基本概念二叉查找树也叫二叉搜索树或是二叉排序树,它的规则如下:左子树中的所有结点的值,均小于其根节点的值。右子树中所有结点的值,均大于其根节点的值。由这两个规则,我们也可以知道,二叉搜索树的子树也是二

数据结构笔记–二叉查找树   (一)基本概念   二叉查找树也叫二叉搜索树或是二叉排序树,它的规则如下:左子树中的所有结点的值,均小于其根节点的值。右子树中所有结点的值,均大于其根节点的值。由这两个规则,我们也可以知道,二叉搜索树的子树也是二叉搜索树。
二叉排序树中进行查找的效率与什么有关_二叉排序树的要求
二叉排序树中进行查找的效率与什么有关_二叉排序树的要求二叉查找树举例
二叉排序树中进行查找的效率与什么有关_二叉排序树的要求
二叉排序树中进行查找的效率与什么有关_二叉排序树的要求   (二)具体实现:   (1)首先我们依旧定义一下基本的结构体:   (2)插入操作:   插入操作的实现很简单。首先和根节点比较,如果它的值比根节点小,则对它的左子树递归调用,并将递归调用的结果赋给它的左子树。反之,则对它的右子树递归调用,并将递归调用的结果赋给它的右子树。   这样下去后,总会遇到root -> left == NULL或者root -> right == NULL的情况。这个时候,说明我们找到需要插入的地方了,我们此时创建新结点即可。   (3)删除操作:   删除操作有两种情况需要考虑。   第一种情况(需要删除的结点没有左右孩子):如下图所示,我们需要删除24这个结点。此时我们只需要找到他,然后将其删除。
二叉排序树中进行查找的效率与什么有关_二叉排序树的要求
二叉排序树中进行查找的效率与什么有关_二叉排序树的要求   第二种情况(需要删除的结点有一个孩子):如上图所示,我们要删除22这个结点。此时我们找到22这个结点将其删除后,还需要将它的孩子(24)连上去(28)。   第三种情况(需要删除的结点有两个孩子–即左右孩子都有):这个时候我们有两种选择。第一种是选取其左子树中最大的结点上位,第二种是选取其右子树中的最小结点上位。我们此处以第一种方法为例。比如我们需要删除28这个结点,但是它有两个孩子,那么我们找到左子树中的最大结点(24),将其值覆盖28。然后对24递归调用删除函数,此时则变为了情况一,也即没有孩子的情况,直接删除即可。   在第三种情况中,我们需要找到左子树上的最大结点,所以我们需要一个函数来帮助我们实现:   然后就是删除的代码:   (4)查找操作:   看完删除操作后,查找操作就很简单了,所以我们直接给出代码:

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/25928.html

(0)
上一篇 2024年 9月 13日
下一篇 2024年 9月 13日

相关推荐

关注微信