图论
文章平均质量分 52
g9002
这个作者很懒,什么都没留下…
展开
-
最小生成树(Kruskal、Prim)
Kruskal算法思想:利用并查集,进行加边操作(每次选择最小权边,直至构成一个生成树)步骤:(1)排序:由小到大对边按权值进行排序(2)当边的数量少于n-1时,重复以下操作:选择最小权边,如果假如这条权边并不构成回路,那么添加它,否则不添加它代码模板:const int MAXN=110;//最大点数 const int MAXM=10000;//最大边数 in...原创 2018-07-31 16:05:20 · 261 阅读 · 0 评论 -
图的储存——前向星
前向星 前向星是一种通过储存边信息的方式储存图的结构。基本方法读入每条边的信息(起点、终点、权值)存放在数组里按照起点排序通常会有一个head数组,记录每个起点上的第一条边代码实现声明struct node{ int from,to,w;} edge[maxn];排序函数 if(a.from==b.from){ if(a.to==b.to) ...原创 2018-11-10 14:40:25 · 756 阅读 · 0 评论 -
图的储存——链式前向星
刚刚学了前向星,现在再学一下链式前向星。链式前向星链式前向星是邻接表的静态建表储存图的方式。采用 数组模拟链表 的方式实现邻接表。基本思路记录下一个节点在数组的哪一个位置head数组描述点 viv_ivi 边信息的链的起点在 Edges 数组的位置构造链式前向星就是将新加入的节点,链在对应链的最开始的,并修改head数组对应位置的值代码实现声明int head[n...原创 2018-11-10 16:10:23 · 190 阅读 · 0 评论 -
图的遍历——拓扑排序
背景知识拓扑排序就是对有向无环图,将所有顶点排成一个线性序列,该序列满足:如果图里有边&lt;u,v&gt;&lt;u,v&gt;<u,v>,那么在该序列里,u一定要在v前面算法思想找到入度为0的点(有向无环图中必定存在!),挨个输出(可能不止一个)删除这些入度为0的点,并且删除以这些点为起点的边这样又会出现新的一波入度为0点,输出!然后...原创 2018-11-10 17:51:33 · 447 阅读 · 0 评论