红黑树简介红黑树是一种自平衡二叉查找树,也有着二叉搜索树的特性,保持着右边始终大于左边结点key的特性。前面提到过的AVL树,也是二叉搜索树的一种变形,红黑树没有达到AVL树的高度平衡,换句话说,它的高度,并没有AVL树那么高的要求,但他的应用却更加的广泛,实践中是相..
分类:
编程语言 时间:
2016-11-01 21:32:54
阅读次数:
284
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、 ...
分类:
其他好文 时间:
2016-10-30 20:18:45
阅读次数:
241
AVL树简介AVL树是一种高度平衡的二叉树,在定义树的每个结点的同时,给树的每一个结点增加成员平衡因子bf,定义平衡因子为右子树的高度减去左子树的高度。AVL树要求所有节点左右子树的高度差不超过2,即bf的绝对值小于2。当我们插入新的结点之后,平衡树的平衡状态将会被破坏,..
分类:
编程语言 时间:
2016-10-30 17:25:04
阅读次数:
285
这篇文章用来回顾二叉搜索数的以下操作: 遍历 前序遍历 中序遍历 后序遍历 层序遍历 查找 查找最大值 查找最小值 查找指定值 前序遍历 中序遍历 后序遍历 层序遍历 查找最大值 查找最小值 查找指定值 获取指定属性 获取总节点/叶节点数量 获取二叉树的高度(根的高度为1) 行为操作 插入 删除 获 ...
分类:
其他好文 时间:
2016-10-25 02:10:30
阅读次数:
266
AVL,平衡二叉查找树。删除,插入,查找的复杂度都是O(logn)。它是一棵二叉树。对于每个节点来说,它的左孩子的键值都小于它,右孩子的键值都大于它。对于任意一个节点,它的左右孩子的高度差不大于1。树的高度的定义为:空节点的高度为0,非空节点的高度为左右孩子高度的最大值加1。 在插入删除过程中,会出 ...
分类:
其他好文 时间:
2016-10-22 17:50:09
阅读次数:
244
一、树 1. 树的定义 非线性数据结构 除根节点外,一个直接前驱,多个直接后继 2. 树的逻辑表示方法 树形表示法 3. 树的基本术语 结点的度、树的度、m次树 分支结点、叶子结点 路径、路径长度 孩子结点、双亲结点、兄弟节点、子孙结点、祖先结点 结点的层次、树的高度(深度) 有序树、无序树 森林 ...
分类:
其他好文 时间:
2016-10-20 07:16:46
阅读次数:
116
定义:AVL树是每个节点左子树和右子树的高度差最大为1的二叉查找树 不平衡节点:假设在懒惰删除(删除操作时,并不删除节点,只是对节点进行特定标记)的条件下,插入操作有可能破坏AVL树的平衡特性。 如果插入节点导致平衡性被破坏,那么平衡性遭到破坏的节点只可能出现在插入节点到根节点的路径上。因为插入操作 ...
分类:
其他好文 时间:
2016-10-08 23:59:58
阅读次数:
386
T1.种树(tree) 有n棵树,各有高度,要求每棵树的高度都小于它到其他树的距离(可能种一起)。求砍掉的总高度是多少。 Ok,那么可以想到,只要满足每棵树和最近的树满足条件就可以保证和其他树满足了。所以只要按pos排个序,去重,然后一棵一棵砍,就好了。 T2.统计方案(count) 有n个数,取出 ...
分类:
其他好文 时间:
2016-10-05 15:11:26
阅读次数:
143
一,问题描述 在控制台上输入一组数据,请按照输入的数据的格式来构造一棵二叉树,并打印出二叉树的高度。 输入的数据格式如下: 第一行为一个整数N(其实是二叉树中边的数目),表示接下来一共有N行输入,每行输入有两个数,左边的数表示父结点,右边的数表示父结点的孩子结点。示例如下: 6 0 1 0 2 1 ...
分类:
其他好文 时间:
2016-09-26 19:44:37
阅读次数:
129
题目的大致意思如下: 输入N组数,一组数代表一个父子对(如,0 1,0代表父节点,1代表子节点),求这N组数所组成的二叉树的高度; 例如: 输入:6 0 1 0 2 1 3 1 4 2 5 3 6 输出:4 解题思路:两种方法,动态规划和回溯法 一.动态规划法:使用一个数组hight[N]记录每组数 ...
分类:
其他好文 时间:
2016-09-24 13:35:00
阅读次数:
176