08 2019 档案

摘要:拓扑排序算法每次选取图中入度为零的一个顶点,再将以该顶点为起点的弧删除,再从更新之后的图中选取下一个入度为零的顶点,其需要一个栈S以存储当前图中入度为零的顶点,以及各个顶点当前的入度数组indegree[ ]。 bool TopologicalSort(Graph G) { InitStack(S) 阅读全文
posted @ 2019-08-24 22:08 风和雨滴 阅读(443) 评论(0) 推荐(0)
摘要:弗洛伊德算法求解图中任意一对顶点之间的最短路径,其路径信息用二维数组path[ ][ ]存储,另外还需维护一个二位数组A(k)[ i ] [ j ]用来存储顶点i经由顶点k作为中间顶点到达顶点j的最短路径长度,当然如果以k作为中间顶点时路径较之前边长,则数组A中的路径长度仍不变,与其对应的path数 阅读全文
posted @ 2019-08-19 23:54 风和雨滴 阅读(236) 评论(0) 推荐(0)
摘要:迪杰斯特拉算法是用于求解图的单元最短路径问题,即某个源点到达图中其余顶点的最短路径,其核心思想是每次从剩余未归入路径的顶点中找到一个到达当前路径距离最短的顶点,将其归入路径中,共执行n-1次。该算法需要三个辅助数组,s[ ]数组用来标记各个顶点有没有被归入当前路径中,dist[ ]数组用于表示当前源 阅读全文
posted @ 2019-08-19 22:29 风和雨滴 阅读(550) 评论(0) 推荐(0)
摘要:普利姆算法的核心是从一个顶点出发,以这个顶点为一个树,依次将剩余顶点中到达这棵树权值小的顶点加入到树中, 为此算法需要lowcost[ ]数组来存储图中各个顶点到这棵树的权值,其中以值0来表示该顶点已经在树中,执行N-1个即可完成添加 另外设adjvex[ ]数组用来存储每个顶点在树中的“前驱”结点 阅读全文
posted @ 2019-08-19 00:13 风和雨滴 阅读(1015) 评论(0) 推荐(0)
摘要:克鲁斯卡尔算法依靠两个辅助数组parent[ ] 和edges[ ]. parent[]数组用于实现并查集操作,即查询一个顶点所在集合的根节点,以及将两个集合合并成为一个集合。 edges[]数组作为图中边的集合,其中各个边按照权值大小升序排序,这样克鲁斯卡尔算法只需依次遍历edges[]数组便可依 阅读全文
posted @ 2019-08-18 23:13 风和雨滴 阅读(239) 评论(0) 推荐(0)