标签:解决 表示 记录学习 生成树 a算法 解决方案 队列 联通 矩阵
无向图G是一个完全图。
路径:连接图中两个顶点的边的序列,可以由多条边组成。
无向图中的路径是双向的。
连通图:无向图中 任意两个顶点间都有路径。例如:
完全图一定是连通图,连通图不一定是完全图。
其中,(b),(c)是(a)的子图。
有向图:顶点之间有序连接,边是顶点的有序对。
边(A,B)和(B,A)方向不同。
有向图中的有序对常用序偶表示,例如:
上图中路径 V00→V22→V33 是从V00到V33的路径,但是反过来不再成立。
上图中左图为联通图,右图不联通,因为从任何顶点到顶点1都没有路径。
有向树是一个有向图,其中指定一个元素为根,则具有下列特性:
任何顶点到根都没有连接。
到达每个非根元素的连接都只有一个。
从根到每个顶点都有路径。
网络可以是无向的也可以是有向的。
深度优先遍历:图的深度优先搜索,类似于树的先序遍历, 所遵循的搜索策略是尽可能“深”地搜索图。
图的深度优先遍历与广度优先遍历的唯一不同是,他使用的是栈而不是队列来管理遍历。
通常构造最小生成树的算法有两种:
它是从点的方面考虑构建一颗MST,大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任意一点的权值最小,此时将c点加入集合V,直至所有顶点全部被加入V,此时就构建出了一颗MST。因为有N个顶点,所以该MST就有N-1条边,每一次向集合V中加入一个点,就意味着找到一条MST的边。
假设 WN=(V,{E}) 是一个含有 n 个顶点的连通网,则按照克鲁斯卡尔算法构造最小生成树的过程为:先构造一个只含 n 个顶点,而边集为空的子图,若将该子图中各个顶点看成是各棵树上的根结点,则它是一个含有 n 棵树的一个森林。之后,从网的边集 E 中选取一条权值最小的边,若该条边的两个顶点分属不同的树,则将其加入子图,也就是说,将这两个顶点分别所在的两棵树合成一棵树;反之,若该条边的两个顶点已落在同一棵树上,则不可取,而应该取下一条权值最小的边再试之。依次类推,直至森林中只有一棵树,也即子图中含有 n-1条边为止。
我看到一个大佬的博客解决了这个问题,而且我阅读之后也有了比较深刻的理解
大佬的博客————图的深度优先遍历和广度优先遍历理解
这两道题改了选项,我当时没注意到群里面的,好气哦
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 0/0 | 1/1 | 8/8 |
第二周 | 671/671 | 1/2 | 17/25 |
第三周 | 345/1016 | 1/3 | 15/40 |
第四周 | 405/1421 | 2/5 | 23/63 |
第五周 | 1202/2623 | 1/5 | 20/83 |
第六周 | 1741/4364 | 1/6 | 20/103 |
第七周 | 400/4764 | 1/7 | 20/123 |
第八周 | 521/5285 | 2/9 | 24/147 |
第九周 | 1622/6907 | 2/11 | 17/164 |
2018-2019-20172321 《Java软件结构与数据结构》第九周学习总结
标签:解决 表示 记录学习 生成树 a算法 解决方案 队列 联通 矩阵
原文地址:https://www.cnblogs.com/N-idhogg/p/9959916.html