《数据结构与算法分析c++描述》读书笔记二——二叉树
2015-06-24 20:14
393 查看
二叉树:对于每个节点X,节点的左子树所有项的值都小于X中的值,而右子树所有项的值都大于X中的值。
下面给出二叉树的简单实现方式:
![](http://img.blog.csdn.net/20150630151347681?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA4NTYyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150630151420404?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA4NTYyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
成员函数如下:
![](http://img.blog.csdn.net/20150630151514107?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA4NTYyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150630151544678?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA4NTYyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150630151617797?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA4NTYyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150630151647804?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA4NTYyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
注:因为二叉树上述定义,每个节点中存放的值x要满足一个条件:x至少是可以被“<”比较的类型。
对于上图中的插入、删除操作算法,有可能导致经过多次插入删除操作之后树变得不不平衡,对不同的节点操作时间差别很大,导致性能变差。所以有此引入改进算法:***L树(一种自平衡二叉树)。
下面给出二叉树的简单实现方式:
成员函数如下:
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
![](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\449691730\QQ\WinTemp\RichOle\_UR70Q56R9~[3KA]IZE}AS6.jpg)
注:因为二叉树上述定义,每个节点中存放的值x要满足一个条件:x至少是可以被“<”比较的类型。
对于上图中的插入、删除操作算法,有可能导致经过多次插入删除操作之后树变得不不平衡,对不同的节点操作时间差别很大,导致性能变差。所以有此引入改进算法:***L树(一种自平衡二叉树)。
相关文章推荐
- POJ 1655 Balancing Act (树的重心)
- 用数组实现js中的堆栈 或者队列数据结构
- 【数据结构】队列
- 数据结构基础(6)--递归和函数调用--汉诺塔问题C语言实现
- 【数据结构】栈
- 分析数据结构IO_CACHE及相关处理函数
- 【数据结构】线性表之链式存储结构
- 【数据结构】线性表之顺序存储结构
- C# 数据结构 栈 Stack
- 数据结构 - 图的数组存储
- 数据结构-堆
- 数据结构和算法经典100题-第19题
- 数据结构与算法(javascript描述)——2. 数组
- 平衡二叉树之一(基本性质、查询、添加)
- BZOJ3209 花神的嘲讽计划I
- 数据结构--图的定义和存储结构
- 2-06. 数列求和
- 【数据结构】直接插入排序_哨兵位
- 数据结构基础(5)--C语言实现循环队列--静态
- Two Sum III - Data structure design数据结构设计