
图
图
千寻瀑༄
一身诗意千寻瀑,万古人间四月天
展开
-
数据结构之图的应用:有向无环图
数据结构之图的应用:有向无环图思维导图:有向无环图:(DAG)解题方法:例:思维导图:有向无环图:(DAG)解题方法:例:PS:当运算顺序不唯一时,最后的有向无环图也不唯一。原创 2020-08-14 16:04:25 · 302 阅读 · 0 评论 -
数据结构之图的应用:关键路径
图的应用:关键路径关键路径的定义:事件最早发生时间:(权值最大、出边)事件最迟发生时间:(权值最小、入边)活动a~i~的最早开始时间:活动a~i~的最迟开始时间:活动a~i~的差额:例:关键路径的定义:ps:顶点表示事件,边表示活动,权值表示活动的开销某一顶点出边表示的含义: 只有当这个事件(顶点)结束时,才能开始活动(出边)以V1为例,只有当V1事件结束时,才能同时执行a1和a2俩个...原创 2020-04-22 12:14:54 · 663 阅读 · 0 评论 -
数据结构之图的应用:拓扑排序
图的应用:拓扑排序拓扑排序的定义:拓扑排序的算法思想:拓扑排序的代码实现:拓扑排序的特点:拓扑排序的定义:拓扑排序的算法思想:ps: 拓扑排序不一定唯一拓扑排序的代码实现:bool ToplogicalSort(Graph G){ InitStack(s); //当出现多个入队为0的顶点时入栈保存 for(int i=0;i<G>vexnum;i++) i...原创 2020-04-22 12:14:43 · 541 阅读 · 0 评论 -
数据结构之图的应用:最短路径(Dijkstra、Floyd)
图的应用:最短路径最短路径的定义:Dijkstra算法:Dijkstra算法原理:算法实现中的辅助数组:例:如何通过path[]数组找到0到其他顶点的路径?Dijkstra算法的代码实现:Dijkstra算法适用范围及性能:Floyd算法:Floyd算法原理:(动态规划)例:Floyd算法的代码实现:最短路径的定义:Dijkstra算法:Dijkstra算法原理:注: 此算法只解决单源...原创 2020-04-22 12:14:26 · 1359 阅读 · 0 评论 -
数据结构之图的应用:最小生成树MST(prime算法和Kruskal算法)
图的应用:最小生成树最小生成树的定义:最小生成树的性质:Prime算法:(贪心算法思想)Prime算法的代码实现原理:Prime算法的实现代码:Prime算法的性能:Kruskal算法:(贪心算法思想)Kruskal算法的实现原理:Kruskal算法的代码实现:Kruskal算法的性能:最小生成树的定义:最小生成树的性质:1、不唯一性:Prime算法:(贪心算法思想)要点:1、...原创 2020-04-22 12:14:14 · 1057 阅读 · 0 评论 -
数据结构之图的遍历:深度优先遍历(DFS)
图的遍历:深度优先遍历深度优先遍历的原理:深度优先遍历的代码实现:深度优先遍历的性能:深度优先生成树:遍历与连通性的关系:深度优先遍历的原理:ps:实现方法是递归+数组或者栈+数组邻接矩阵法的DFS,BFS唯一,邻接表法不唯一深度优先遍历的代码实现:bool visited[MAX_TRUE_SIZE];void DFSTraverse(Graph G){ for(int i=0...原创 2020-04-22 12:14:02 · 3303 阅读 · 0 评论 -
数据结构之图的遍历:广度优先遍历(BFS)
图的遍历:广度优先遍历广度优先遍历的原理:广度优先遍历的代码实现:广度优先遍历的性能分析:无权图单源最短路径问题:广度优先生成树:广度优先遍历的原理:1、先入队一个节点2、然后入队与该节点相邻的且未被访问过的节点,然后出队该节点3、重复2过程直到所有的节点均被访问ps:实现方法是用一个标记数组加队列完成的,标记数组的作用是标记节点是否被访问过广度优先遍历的代码实现://vis...原创 2020-04-22 12:13:51 · 31117 阅读 · 3 评论 -
数据结构之图的基本操作
图的基本操作判断边是否存在:列出与某节点相邻的边:在图中插入一个顶点:在图中删除一个顶点:在图中添加一条边:在图中删除一个边:查找某顶点的第一个邻接点:查找某边的权值:判断边是否存在:ps:在邻接表中,要搜索某节点的整个边表才能找到是否存在边在邻接矩阵中,只需要判断该边对应数组位置的值即可所以从判断是否存在边的角度看,邻接矩阵法更优列出与某节点相邻的边:无向图:在邻接矩阵中,只...原创 2020-04-22 12:13:40 · 4617 阅读 · 0 评论 -
数据结构之图的存储结构:邻接多重表
图的存储结构:邻接多重表邻接多重表的定义:邻接多重表的代码定义:十字链表与邻接多重表的对比邻接多重表的定义:顶点表节点:1、data:顶点数据域2、firstedge:边表节点的头指针边表节点:1、ivex:该边的第一个端点2、ilink:与该端点相邻的下一个边表节点的指针3、jvex:该边的第二个端点4、jlink:与该端点相邻的下一个边表节点的指针5、info:权值6...原创 2020-04-22 12:13:29 · 5699 阅读 · 0 评论 -
数据结构之图的存储结构:十字链表法
图的存储结构:十字链表法十字链表法的定义:十字链表法的代码定义:十字链表法的定义:顶点表节点:1、data:顶点数据域2、firstin:入边单链表头指针3、firstout:出边单链表头指针边表节点:1、tailvex:尾域,存放弧尾节点2、headvex:头域,存放弧头节点3、hlink:弧头相同的下一条边,即指向下一个边表节点的指针4、tlink:弧尾相同的下一条边...原创 2020-04-22 12:13:14 · 11618 阅读 · 0 评论 -
数据结构之图的存储结构:邻接表法
图的存储结构:邻接表法邻接表法的定义:邻接表法的特点:邻接表法的代码定义:邻接表法与邻接矩阵法的对比:邻接表法的定义:例:邻接表法的特点:ps:1、存储空间 = 节点占用空间 + 边占用空间2、邻接表的长度表示该顶点的出度3、邻接表出现某一顶点的次数为该顶点的入度邻接表法的代码定义:#define MaxVertexTypeNum 100typedef char Ve...原创 2020-04-22 12:13:02 · 1589 阅读 · 0 评论 -
数据结构之图的存储结构:邻接矩阵法
图的存储结构:邻接矩阵法邻接矩阵法:邻接矩阵的定义:邻接矩阵存储无向图:邻接矩阵存储有向图:邻接矩阵存储网:邻接矩阵法的性质:邻接矩阵法的代码实现:矩阵运算A的n次幂的含义:邻接矩阵法:邻接矩阵的定义:注: 其实就是一个二维数组,用二维数组的值表示这俩个节点是否存在边邻接矩阵存储无向图:ps: 无向图的矩阵必定为对称矩阵,所以可以压缩成上三角存储邻接矩阵存储有向图:邻接矩阵存储...原创 2020-04-22 12:12:49 · 1496 阅读 · 0 评论 -
数据结构之图定义及相关概念
图定义及相关概念图的定义:图的基本概念:有向图和无向图:简单图和多重图:完全图:子图:连通和强连通:连通图和强连通图:连通分量和强连通分量:(极大连通子图和极大强连通子图)极小连通子图和绩效强连通子图:生成树和生成森林:顶点的度:网:稠密图和稀疏图:有向树:路径:路径长度:回路:图的定义:图的基本概念:有向图和无向图:简单图和多重图:完全图:子图:连通和强连通:ps: 连...原创 2020-04-22 12:12:36 · 869 阅读 · 1 评论