摘要:
拓扑排序 writer:pprp 分析: 建立一个队列,将所有入度为0的节点放到队列中 输出该节点,更新与其相连的其他点的入度 再次将所有更新节点中入度为0的点加入队列 算法思路: 每次选取一个入度为0的点,将其从该图中删除,再按照以上步骤进行依次删除,如果不能删除那么说明存在环状结构导致没有入度为 阅读全文
摘要:
广度搜索 链式前向星表示法 writer:pprp 分析: 参数:当前节点的标号为bfs的参数 注意:要另外开一个VIS数组进行涂色,涂过色的就不要再涂色了 head数组应该全置 1,VIS数组全置0 遍历的时候利用到了queue进行操作,注意应该在qu.front()和qu.pop()的位置 代码 阅读全文
摘要:
深度搜索 链式前向星表示法 writer:pprp 分析: 参数:当前节点的标号为dfs的参数 注意:要另外开一个VIS数组进行涂色,涂过色的就不要再涂色了 head数组应该全置 1,VIS数组全置0 遍历的条件应该注意一下 k = edge[k].next 代码如下: 阅读全文
摘要:
链式前向星 writer:pprp 分析:比较难以理解,关键代码其实很短 如下: 结点声明: 建立语句: 遍历语句: include using namespace std; const int maxn = 1000; struct node { int to; int w; int next; 阅读全文
摘要:
邻接表表示 用vector实现 writer:pprp 代码如下: include using namespace std; const int maxn = 1000; struct node { int to; int w; node(int tt, int ww):to(tt),w(ww){} 阅读全文
摘要:
前向星的建立和遍历 writer:pprp 注意:从0开始不是从1开始 链式前向星算法可以对应点特别多的情况,可以存储重复边,但不能直接判断图中任意两点是有边。 代码如下: //writer:pprp //前向星表示 //注意:点的编号也是从0开始的,不能从1开始 include include i 阅读全文