其他分享
首页 > 其他分享> > 温故而知新 -> 数据结构 ->树 -> 二叉搜索树

温故而知新 -> 数据结构 ->树 -> 二叉搜索树

作者:互联网

温故而知新 -> 数据结构 ->树 -> 二叉搜索树

:若想查看二叉树相关内容,可点击 温故而知新 -> 数据结构 ->树 -> 二叉树
若想查看其他有关数据结构知识,可点击链接 温故而知新 -> 数据结构

二叉树

1、概念

二叉搜索树 又称 二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:

例如将 int data[] = {4,6,13,5,8,10,12,7,11,9} 以二叉搜索树的结构去构造,结果如下
在这里插入图片描述

2、操作

2.1 查找

查找规则 可总结为几句话:

若根节点不为空

  1. 若根节点 key == 查找 key , 返回 true
  2. 若根节点 key > 查找 key,在其左子树查找
  3. 若根节点 key < 查找 key,在其右子树查找

若根节点为空,返回 false !

案例如下
在这里插入图片描述

2.2 插入

插入的具体过程如下:

  1. 树为空,则直接插入
  2. 树非空,按照二叉搜索树性质查找插入位置,插入新节点

案例如下
在这里插入图片描述

2.3 删除

首先查找元素是否在二叉搜索树中,若不存在,则返回

若存在,则要删除的结点可能分下面四种情况

  1. 要删除的结点无孩子结点
  2. 要删除的结点只有左孩子结点
  3. 要删除的结点只有右孩子结点
  4. 要删除的结点有左、右孩子结点

虽然有待删除节点有4种情况,实际 情况1 可以与 情况2 或者 3 合并起来,因此真正的 删除过程 如下:

3、实现

根据上述理论知识去依序实现二叉搜索树!

由于代码较多,所以可点击后续链接进行查看!

4、应用

4.1 K模型

K模型 即只有 Key 作为关键码,结构中只需要存储 Key 即可,关键码即为需要搜索到的值。

比如:给一个单词word,判断该单词是否拼写正确,具体方式如下:

4.2 KV模型

每一个关键码 Key,都有与之对应的值 Value,即<Key, Value>的键值对。

比如:实现一个简单的英汉词典dict,可以通过英文找到与其对应的中文,具体实现方式如下:

侵权删~

标签:温故而知新,结点,删除,二叉,查找,搜索,数据结构,节点
来源: https://blog.csdn.net/m0_51961114/article/details/122777852