题目连接:点击打开链接
在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果。
输入
...
分类:
其他好文 时间:
2014-09-11 23:52:22
阅读次数:
184
最近几月一直在自学C语言和数据结构,先是写了排序二叉树,觉得平衡二叉树作为一个经典数据结构,有必要实现一下。网上看了些资料,在AVL和红黑树之间考虑,最后个人还是倾向于AVL。不同于标准AVL的是,笔者没有使用平衡因子,直接根据左右孩子的高度差值判断是否平衡。整个平衡二叉树是在普通二叉查找树的基础上...
分类:
编程语言 时间:
2014-08-31 15:39:21
阅读次数:
383
用智能指针可以简化内存管理。以树为例,如果用普通指针,通常是在插入新节点时用new,在析构函数中调用delete;但有了unique_ptr类型的智能指针,就不需要在析构函数中delete了,因为当unique_ptr类型的指针P生命结束时(比如对于局部变量,程序执行到局部变量的作用域范围之外).....
分类:
编程语言 时间:
2014-08-31 15:38:31
阅读次数:
246
树定义
专业定义:有且只有一个称为根的节点,有若干个互不相交的子树,这些子树的本身也是一棵树。
通俗的定义:树是由节点和边组成;每个节点只有一个父节点但可以有多个子节点;但有一个节点例外,该节点没有父节点,此节点称为根节点。
专业术语
节点 父节点 子节点 子孙 堂兄弟 深度
深度:从根节点到底层节点的层数称之为深度。根节点是第一层.
叶...
分类:
其他好文 时间:
2014-08-30 20:30:30
阅读次数:
283
定义 排序二叉树的定义也是递归定义的,需要满足: (1)若它的左子树不为空,则左子树上所有节点的值要均小于根节点的值; (2)若它的右子树不为空,则右子树上所有节点的值要均大于根节点的值; (3)左、右子树也分别是排序二叉树 如下图,对于排序二叉树,若按中序遍历就可以得到由小到大的有序序列。 创建 创建排序二叉树的步骤就是不断像排序二叉树中添加新节点(p)的过程: (1)以根节...
分类:
编程语言 时间:
2014-08-18 18:45:22
阅读次数:
316
1.小根堆
若根节点存在左子女则根节点的值小于左子女的值;若根节点存在右子女则根节点的值小于右子女的值。
2.大根堆
若根节点存在左子女则根节点的值大于左子女的值;若根节点存在右子女则根节点的值大于右子女的值。
3.结论
(1)堆是一棵完全二叉树(如果公有h层,那么1~h-1层均满,在h层连续缺失若干个右叶子)。
(2)小根堆的根节点的值是最小值,大根堆的根节点的值是最大值。
(3)...
分类:
其他好文 时间:
2014-08-12 13:35:44
阅读次数:
319
在计算机科学中,二叉树是一种重要的非线性的数据结构。每个结点的度均小于等于2,通常子树称为左子树和右子树。而排序二叉树是二叉树中的一种,其满足:1. 如左子树不为空,那么左子树上的结点的值都小于其根上的值;2. 如右子树不为空,那么右子树上的结点的值都大于其根上的值; 3. 其子树也是一个排序二叉树。
下面用递归的方式来插入一个结点来满足上述的要求:
typedef struct Node
{...
分类:
其他好文 时间:
2014-07-29 15:02:28
阅读次数:
160
TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。TreeSet 和 TreeMap 的关系为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSe...
分类:
其他好文 时间:
2014-07-10 12:06:58
阅读次数:
198
基本枚举、贪心、递归、分治、递推、模拟STL(pair、vector、set、map、queue、string、algorithm)构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/Tr...
分类:
其他好文 时间:
2014-07-01 19:09:02
阅读次数:
193
排序二叉树对于我们寻找无序序列中的元素的效率有了大大的提高。查找的最差情况是树的高度。这里就有问题了,将无序数列转化为二叉排序树的时候,树的结构是非常依赖无序序列的顺序,这样会出现极端的情况。【如图1】: 这样的一颗二叉排序树就是一颗比较极端的情况。我们在查找时候,效率依赖树的高度,所以不希望这样....
分类:
其他好文 时间:
2014-06-25 15:54:27
阅读次数:
300