查找算法【平衡二叉树】 - 平衡二叉树的创建
查找算法【平衡二叉树】 - 平衡二叉树的创建
平衡二叉树的创建和二叉查找树的创建类似,只是插入操作多了调整平衡而已。
可以从空树开始,按照输入关键字的顺序依次进行插入操作,最终得到一棵平衡二叉树。
【算法步骤】
① 初始化平衡二叉树为空树,T=NULL。
② 输入一个关键字x ,将x 插入平衡二叉树T中。
③ 重复步骤2,直到关键字输入完毕。
【举个栗子】
例如,依次输入关键字(25,18,5,10,15,17),创建一棵平衡二叉树。
① 输入25,将平衡二叉树初始化为空,所以将25作为树根,左右子树为空,如下图所示。
② 输入18,插入平衡二叉树。与树根25做比较,比25小,到左子树中查找,左子树为空,插入此位置,检查祖先未发现失衡,如下图所示。
③ 输入5,将其插入平衡二叉树中。与树根25做比较,比25小,到左子树中查找,比18小,到左子树中查找,左子树为空,插入此位置。25节点失衡,从不平衡节点到新节点路径前两个是LL,做LL型旋转调整平衡,如下图所示。
④ 输入10,将其插入平衡二叉树中。与树根18做比较,比18小,到左子树中查找,与树根5做比较,比5大,到右子树中查找,右子树为空,插入此位置,检查祖先未发现失衡。如下图所示。
⑤ 输入15,将其插入平衡二叉树中。与树根18做比较,比18小,到左子树中查找,与树根5做比较,比5大,到右子树中查找,与树根10做比较,比10大,到右子树中查找,右子树为空,插入此位置。5节点失衡,从不平衡节点到新节点路径前两个是RR,做RR型旋转调整平衡,如下图所示。
⑥ 输入17,将其插入平衡二叉树中。经查找之后(过程省略),将其插入15的右子树位置。18节点失衡,从不平衡节点到新节点路径前两个是LR,做LR型旋转,如下图所示。
【算法实现】
AVLTree CreateAVL(AVLTree &T){int n , x;cin >> n;for(int i = 0 ; i < n ; i++){cin >> x;T = Insert(T , x);}return T;
}
查找算法【平衡二叉树】 - 平衡二叉树的创建相关推荐
- 查找算法【平衡二叉树】 - 平衡二叉树的删除
查找算法[平衡二叉树] - 平衡二叉树的删除 在平衡二叉树中进行插入操作时只需从插入节点之父向上检查,发现不平衡便立即调整,调整一次平衡即可:而进行删除操作时需要一直从删除节点之父向上检查,发现不平衡 ...
- 数据结构与算法——图解平衡二叉树及代码实现
平衡二叉树介绍 平衡二叉树,是一种二叉排序树,其中每一个节点的左子树和右子树的高度差最多等于1.由3位科学家共同发明,用他们首字母命名 又被称为AVL树.从平衡二叉树的名称,你也可以体会到它是一种高度 ...
- 3374——数据结构实验之查找二:平衡二叉树
数据结构实验之查找二:平衡二叉树 ( LL RR LR RL) Problem Description 根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根. Input 输入一组测试数据 ...
- SUTD OJ 数据结构实验之查找二:平衡二叉树
数据结构实验之查找二:平衡二叉树 Time Limit: 400 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 根据给 ...
- 查找算法【二叉查找树】 - 二叉查找树的创建
查找算法[二叉查找树] - 二叉查找树的创建 二叉查找树的创建可以从空树开始,按照输入关键字的顺序依次进行插入操作,最终得到一棵二叉查找树. [算法步骤] ① 初始化二叉查找树为空树,T =NULL: ...
- 【数据结构】查找算法
文章目录 查找算法 顺序查找算法 折半查找 分块查找 二叉排序树 平衡二叉树(AVL树) 散列表 哈希函数的构造 处理冲突的方法 哈希查找算法及其实现 查找算法 查找:在数据集合中寻找满足某种条件的数 ...
- 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 21
大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 211 第 ...
- 第29讲 常见算法(查找算法、递归算法、排序算法)
文章目录 查找算法 1. 基本查找 2. 二分查找 3. 插值查找 4. 斐波那契查找 5. 分块查找 6. 哈希查找 7. 树表查找 递归算法 排序算法 1. 冒泡排序 2. 选择排序 3. 插入排 ...
- 查找算法及其时间复杂度
一.顺序查找 条件:无序或有序队列. 原理:按顺序将查找元素与每个元素比较,直到找到查找元素为止. 时间复杂度:O(n) int SequenceSearch(int arr[], int value ...
最新文章
- 密码流 PassWord.java
- 妙用0元素数组 实现大小可变结构体
- js 用正则表达式模仿SQL like % 的模糊匹配
- Spring集成–配置Web服务客户端超时
- php ajax json 实例,php+ajax+json 详解及实例代码
- 面向业务的立体化高可用架构设计
- 扩展GeoServer数据源
- 按学号查找学生信息 用c语言表达,学生信息管理系统C语言编程.docx
- Twaver-HTML5基础学习(7)Layer图层元素
- 什么是rpm -ivh
- Android8.0 Fingerprint指纹启动流程详细分析
- # Maven错误Error executing Maven
- 【Leetcode】Customers Who Never Order
- “内鬼”作祟,国内知名游戏公司被黑
- 高斯消元法原理及模板
- 关于高精地图-导航电子地图制作测绘资质的讯息分享
- 【JavaScript】懒加载
- 制作DeepLabV3Plus训练集
- 数据通信是计算机网络最基本功能,计算机网络最基本的功能是数据通信和()。A.打印文件B.文件调用C.降低成本D.资源共享...
- 注册表删除卸载列表中的软件