拓扑排序虽是一种排序,但是它跟平时所接触的sort或者qsort不同,排序的意义不同。拓扑排序针对有向无回路图(DAG)而言的,不应用与存在回路的有向图。【图论】广度优先搜索和深度优先搜索 有说到了BFS和DFS,拓扑排序是DFS的一个应用。有向无回路图能说明事件的发生的先后的顺序。比如穿衣服,士兵...
分类:
其他好文 时间:
2014-07-11 20:11:54
阅读次数:
298
写在最前面的这篇文章并没有非常详细的算法证明过程。导论里面有非常详细的证明过程。本文只阐述“广度优先和深度优先搜索的思路以及一些简单应用”。两种图的遍历算法在其他图的算法当中都有应用,并且是基本的图论算法。广度优先搜索广度优先搜索(BFS),可以被形象的描述为“浅尝辄止”,具体一点就是每个顶点只访问...
分类:
其他好文 时间:
2014-07-11 19:59:06
阅读次数:
247
搜索一个图是有序地沿着图的边访问所有定点, 图的搜索算法可以使我们发现很多图的结构信息, 图的搜索技术是图算法邻域的核心。
e...
分类:
其他好文 时间:
2014-07-09 10:30:48
阅读次数:
233
2014.07.04 18:24简介: 给定一个有向图,你可以认为每条边长度都是1(所以叫无权值)。下面的算法可以求出从特定的起点到终点的最短路径长度。描述: 从起点出发,根据当前顶点出发的边进行广度优先搜索,直至找到终点即可。如果搜索结束了仍然没有找到终点,那么起点无法到达终点。实现: 1 /.....
分类:
编程语言 时间:
2014-07-06 19:15:17
阅读次数:
255
(2)邻接表邻接表的C语言描述基本运算的算法——建立无向网的邻接表、求图中与顶点i邻接的第一个顶点、求图中顶点i相对于顶点j的下一个邻接点、若图G中存在顶点u,则返回该顶点在图中的位置、图的广度优先遍历、图的深度优先遍历2.#include#includeusing namespace std;cl...
分类:
其他好文 时间:
2014-07-03 11:29:43
阅读次数:
311
DFS 深度优先BFS 广度优先DFS或者BFS都是在联通区域内遍历节点的方法用在二叉树上DFS有preOreder,inOrder,postOrder,BFS就是层次遍历。在二叉树上的节点,只有两个选择,left 和right,即,对于每一个节点,in 有1个, out 有两个,有向图在矩阵的节点...
分类:
其他好文 时间:
2014-07-01 21:32:46
阅读次数:
278
1时间复杂度分析由于该图采用邻接矩阵存储,整个算法遍历的过程所花费的时间复杂度为该矩阵的N(row*col)。而由于其需要分别访问已经定位,需要进行分别2次操作,如下:visited=newbool[col*row];//访问标记for(i=0;i#include#include#include#i...
分类:
其他好文 时间:
2014-06-25 22:11:11
阅读次数:
235
本文参考了李春葆版本的数据结构上机指导,但是原版是c代码,
本文用了c++实现,并且修复了深度优先搜索非递归的一个bug。
graph.cpp文件:
#include"graph.h"
#include
#include
int visited[MAXV];
MGraph::MGraph(int A[100][10],int nn,int ee)
{
e=ee;
n=nn;...
分类:
编程语言 时间:
2014-06-22 19:37:23
阅读次数:
655
问题
最短路径问题的Dijkstra算法
是由荷兰计算机科学家艾兹赫尔·戴克斯特拉提出。迪科斯彻算法使用了广度优先搜索解决非负权有向图的单源最短路径问题,算法最终得到一个最短路径树> 。该算法常用于路由算法或者作为其他图算法的一个子模块。
这个算法的python实现途径很多,网上能够发现不少。这里推荐一个我在网上看到的,本来打算自己写,看了这个,决定自己不写了,因为他的已经太...
分类:
其他好文 时间:
2014-06-21 20:58:46
阅读次数:
183
图遍历的演示
[问题描述]
很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示无向图的遍历操作。
以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。
借助于栈类型(自己定义和实现)将深度优先遍历用非递归算法实现。(非递归算法的实现为选做内容,如能实现,适当加分)
[测试数据]
...
分类:
其他好文 时间:
2014-06-18 06:00:19
阅读次数:
251