复习篇——数据结构之图

tech2022-09-18  97

Some concepts

弧尾是起始点(箭头的开端),弧头是终结点(箭头的终端)无向完全图:顶点与其他n-1个顶点都有边相连接的无项图「有n(n-1)/2条边」有向完全图:每个顶点与其余n-1条顶点都有弧相连的有向图「有n(n-1)条边」稀疏图:图的边数e<nlogn;稠密图:图的边数e>=nlogn度:顶点v的度是指与顶点v相关联的数目;入度:以顶点v为弧头的弧的数目;出度:以顶点v为弧尾的弧的数目顶点的度=顶点的入度+顶点的出度;顶点的度与边的关系:顶点的边=n个顶点累积的度除以2权:每一条边都有与它相关的数(这些权可以表示从一个顶点到另一个顶点的距离或耗费等信息)网或赋权图:带权的图路径的长度:路径上经过的弧或边的数目(有向图的路径也是有向的)回路或环:该路径的第一个顶点与最后一个顶点是相同的简单路径:路径顶点序列中顶点不重复出现简单回路:除了第一个和最后一个顶点外,其余顶点均不重复出现的回路连通图:对于图中任意两个顶点,它们都是连通的,则称其为连通图(若从顶点a到顶点b有路径相通,则称该顶点a与b是连通的)连通分量:无向图中的极大连通子图 强连通图:强连通图针对的是有向图,对于任意一对顶点a、b,从a到b和从b到a都有路径强连通分量:有向图的极大强连通子图 极小连通子图:含有图中的全部顶点,但只有足以连通n个点的n-1条边(即一个连通图的生成树) 生成树:一个连通图的生成树是指一个极小连通子图(n个顶点,n-1条边);如果在生成树上再添加一条边,必定构成一个环(即回路);一颗有n个顶点的生成树有且仅有n-1条边,如果它多于n-1条边,则一定有回路,小于n-1条边一定为非连通图;有n-1条边的图并非一定连通,不一定存在生成树生成森林:各个连通分量的生成树集合为该非连通图的生成森林 生成树是对应连通图来说,而生成森林是对应非连通图来说的最小生成树:在一个连通图中所有生成树中,各边的代价之和最小的那颗生成树称为该连通网的最小生成树

图的存储结构

邻接矩阵表示法(数组表示法,对称矩阵) 使用二维数组来表示,一个用于存储邻点信息,另一个用于存储图中顶点的关联

邻接表

十字链表

图的遍历

图的深度优先遍历

图的广度优先遍历

图的最小生成树(两种算法)

普利姆算法(从点开始)

克鲁斯卡尔算法(从边开始)

顶点表示活动的网(AOV网)

可以进行拓扑排序,用顶点表示活动,弧表示活动间的优先关系,下图的一个拓扑排序为C1,C2,C3,C4,C5,C8,C9,C7,C6(拓扑排序不是唯一的) 求有向无环图的拓扑排序的步骤(可以判断是否有回路) ①从有向图中选择一个无前驱的结点输出 ②将此结点和以它为起点的边删除 ③重复①、②,直到不存在无前驱的结点 ④若此时输出的结点数小于有向图中的结点数。则说明有向图中存在回路;否则输出的顶点的顺序即为一个拓扑排序

边表示活动的网(AOE网)

关键路径:从源点到汇点的最长路径的长度即为完成整个工程任务所需的时间,将此路径称为关键路径 其他资料参考(很全):https://blog.csdn.net/qq_38071429/article/details/80407544

最短路径

迪杰斯特拉算法 https://blog.csdn.net/bjweimengshu/article/details/89090053 弗洛伊德算法

最新回复(0)