数据结构
文章平均质量分 76
liuyueyue0921
这个作者很懒,什么都没留下…
展开
-
二叉树之打印二叉树两节点路径
[C++] view plaincopypubl原创 2015-08-09 15:59:53 · 619 阅读 · 0 评论 -
线段树
线段树在一些acm题目中经常见到,这种数据结构主要应用在计算几何和地理信息系统中。下图就为一个线段树:(PS:可能你见过线段树的不同表示方式,但是都大同小异,根据自己的需要来建就行。)1.线段树基本性质和操作线段树是一棵二叉树,记为T(a, b),参数a,b表示区间[a,b],其中b-a称为区间的长度,记为L。线段树T(a,b)也可递归定义为:若L>转载 2015-08-10 16:48:29 · 326 阅读 · 0 评论 -
sprintf函数应用
sprintf函数应用 来自《CSDN 社区电子杂志——C/C++杂志》 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变参函数,转载 2015-08-12 22:10:50 · 302 阅读 · 0 评论 -
LCS 算法
LCS算法:俩个数组a[str1长+1][str2长+1], b[str1长+1][str2长+1] a记录LCS值 b记录值从哪来的数组第一行,第一列都初始化为0,其他根据计算而来字符串相等时,a[i][j]=左上角值+1 b[i][j]记为1 是由左上角而来,所以回溯时 向左上角走 不等时:上面的原创 2015-08-14 20:08:36 · 474 阅读 · 0 评论 -
二叉树俩个子节点的公共父节点
二叉树俩个子节点的公共父节点(1)节点只有left right 无 father 有root1 找各自路径 vector2 找到之后 计算稍长的那个路径 长多少 下标访问 查找 3 找到 返回 path[i](2)节点有父节点 root 未知 1 计算各自路径长度原创 2015-08-15 19:13:42 · 1242 阅读 · 0 评论 -
二叉树遍历
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度转载 2015-09-02 22:40:01 · 408 阅读 · 0 评论 -
拓扑排序
拓 扑 排 序 一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就是说,一个子工程的开始是以它的所有前序子工程的结束为先决条件的,但有些子工程没有先决条件,可以安排在任何时间开始。为了形象地反映出整个工程中各个子工程(活动)之间的先后关系,可用一个有向图来表示,图中的顶点代表活转载 2015-09-03 22:54:42 · 611 阅读 · 1 评论 -
最短路径—Dijkstra算法和Floyd算法
Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问题描述:在无向图 G=(V,E) 中,假转载 2015-09-03 22:58:07 · 405 阅读 · 0 评论 -
B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关转载 2015-09-05 10:07:46 · 273 阅读 · 0 评论