
数据结构
文章平均质量分 80
乞丐大王111
这个作者很懒,什么都没留下…
展开
-
拓扑排序
对于一个无环的有向图而言,称之为有向无环图(DAG),它是描述一项工程的有效工具,如计划过程,生产流程,程序流程等。一般来说,每个工程可以分为,多个活动也称为子工程,子工程里面存在约束,其中一些子工程必须从某个子工程结束后才能进行,因此可以用有向无环图来表示一个工程,边表示约束条件。 对于工程人们通常关注的是 一. 工程能否实现 (拓扑排序) 二. 工程最短完成时间(关键路径) 拓扑排序 例如上图(a),用顶点表示活动,用有向边表示优先关系的图的有向图,我们称之为AOV网(Activity on Vert原创 2021-04-15 15:18:54 · 1802 阅读 · 0 评论 -
图里面的最短路径
最短路径最短路径对应的现实问题从某顶点都其余顶点的最短路径(迪杰斯特拉 Dijkstra)图中每对顶点的最短路径 最短路径对应的现实问题 计算机网络中路由算法其实对应的就是最短路径问题,从一个结点到另一个结点,怎么样的走才是最小代价。 从某顶点都其余顶点的最短路径(迪杰斯特拉 Dijkstra) 这里讨论的问题是,给定一个带权的有向图G与源点v,求从v到G中其余顶点的最短路径。 算法的思想: 假设图有n个顶点,那么就有n-1条最短路径,因为从某个点开始到其余的n-1个点都有一条最短路径。迪杰斯特拉提出了按原创 2021-04-15 14:17:02 · 298 阅读 · 0 评论 -
普里姆算法(Prim)
生成树概念:一个连通图的生成树,是极小连通子图,也意味着它包含图的所有顶点和尽可能少的边(n个结点,n-1条边),意味着对于生成树而言,去掉其中一边会使生成树变成非连通图,再增加一条边,就会形成图中的一个回路。 最小生成树:如果无向连通图是一个网(带权图),那么在所有的生成树中必定有一棵边的权值总和最小的数,则称这棵树为最小代价生成树,简称最小生成树。 MST性质:构成最小生成树大多利用了MST性质,设N∈(V,E)是一个连通网,U是顶点集的一个非空子集,若(u,v)是一条具有最小权值的边,其中u∈U,v∈原创 2021-04-13 17:33:17 · 1657 阅读 · 0 评论 -
二叉树的学习
二叉树的学习二叉树的术语二叉树的性质二叉树的遍历递归算法按层遍历非递归算法 二叉树的术语 结点:树中的一个元素 孩子节点:某个节点的各子树的根 双亲节点:与孩子结点相反的概念 兄弟节点:有相同双亲的孩子结点 祖先结点:从根结点到该结点的双亲结点都成为祖先结点 子孙结点,与祖先结点相反的概念 结点的度:该结点的子树个数 叶子节点:结点的度为0的,也称为终端结点 分支结点:度不为0的节点,也称非终端节点 数的层数:树根所在的结点为1,其他结点为双亲结点+1 数的层数:树种结点的最大层数 有序数和无序数:有序数原创 2021-04-09 09:17:44 · 195 阅读 · 0 评论 -
KMP算法的粗浅理解
KMP算法是模式匹配算法,简单而言就是在主串S中查找与子串T(模式)相匹配的子串,如果成功返回T第一个字符出现的位置,如果始终没有查找到一个与T相匹配的子串则返回0。在搜索时可以定义搜索的起始位置,从头开始查找的话pos为1。 KMP算法中最重要的是有个next数组。对于子串 T[length-1] 有个对应的next[length-1]。如果next[j]里面的值为k。那么在下标j之前有从头开始的前k个元素与末尾的k个一一相等。 以abcabcd字符串为例。在 在下标4之前,有第一个a与末尾第一个a相等,原创 2021-04-01 17:30:51 · 238 阅读 · 0 评论