树数据结构 树是一种二位数据结构,并且非常常见。树的元素,叶节点有两个“指针”和数据域。 二叉排序树 在一个子树中,根节点比左子节点要大,比右子节点要小。 树的遍历 先序遍历:先遍历子树的根节点,再遍历左子节点,最后遍历右子节点。 中序遍历:先遍历左子节点,再遍历根节点,最后遍历右子节点。 后序遍历 ...
分类:
其他好文 时间:
2016-10-11 14:15:57
阅读次数:
192
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中; 否则,如果查询关键字比结点 ...
分类:
其他好文 时间:
2016-10-05 00:39:17
阅读次数:
104
B-树 B-树是一种多路搜索树(并不一定是二叉的) 1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树,称为B树(或B-树、B_树)。 一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是空树,或者是满足下列 ...
分类:
其他好文 时间:
2016-09-28 02:04:11
阅读次数:
341
一、 设计思想: 设计这个程序我们需要考虑到参数的输入,并且可以输入多个参数,以及为用户考虑到各种的边界问题。首先第一步我们应该给出输入参数的语句,让用户可以输入。第二步我们应对其进行参数个数的输出,看是否输入的参数,如果参数为0,提示用户输入的参数为 0,然后就是输出的参数个数输出给用户。第三步就 ...
分类:
编程语言 时间:
2016-09-26 18:04:46
阅读次数:
122
迭代加深搜索 一、算法简介 迭代加深搜索是在速度上接近广度优先搜索,空间上和深度优先搜索相当的搜索方式。由于在使用过程中引入了深度优先搜索,所以也可以当作深度优先搜索的优化方案。 迭代加深搜索适用于当搜索深度没有明确上限的情况。 例如上图的一棵搜索树,在进行深度优先搜索前先规定好这次搜索的最大深度d ...
分类:
其他好文 时间:
2016-09-25 13:10:55
阅读次数:
190
一种由Robert Tarjan提出的求解有向图强连通分量的线性时间的算法。 Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树。搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断栈顶到栈中的节点是否为一个强连通分量。 定义dfn(u)为节点u搜索的次序编号 ...
分类:
编程语言 时间:
2016-09-25 10:46:16
阅读次数:
352
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 这道题我本身的思路也是递归,但是整个过程没有用到返回值,不知道为什么我总是不太会用返回值.......。 具体过程 main函数的作用是 找到当前参数节点的左子树的 最大值( ...
分类:
其他好文 时间:
2016-09-25 06:09:54
阅读次数:
116
算法10 二叉搜索树存在重复数据插入的实现 当用TREE-INSERT将n个具有相同关键字的数据项插入到一棵初始为空的二叉查找树中时,该算法的渐近性能如何? 我们可以对TREE-INSERT做一些改进,即在第5行的前面测试key[z] = key[x],在第11行的前面测试key[z] = key[ ...
分类:
编程语言 时间:
2016-09-23 19:50:34
阅读次数:
226
算法10 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括search,minimum,maximum,predecessor,successor,insert和delete等。 概念:二叉搜索树。对于任何节点x,其左子树中的关键字最大不超过x.key,其右子树中的关键字最小不低于x.key。其 ...
分类:
编程语言 时间:
2016-09-22 21:09:16
阅读次数:
239
题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利。但是,小L对数据结构的掌握实在十分渣渣。 所以,小L当时卡在了二叉树。 题目描述 在计算机科学中,二叉树是每个结点最多有两个子结点的有序树。通常子结点被称作“左孩子”和“右孩子”。二叉树被用作二叉搜索树和二叉堆。随后他又和他人讨论起 ...
分类:
其他好文 时间:
2016-09-21 21:19:43
阅读次数:
131