void DFS(Vertex V)
{
Visited[V] = true;
for(V的每个邻接点W)
if(!visited[W])
DFS(W);
*用邻接表存储图,有O(N + E)
*用邻接矩阵存储图,有O(N*N)
注:表示图常用的两种方法:(1)邻接表 (2)邻接矩阵
{
Visited[V] = true;
for(V的每个邻接点W)
if(!visited[W])
DFS(W);
}
代码实现:
void DFS(ALGraph* Graph, Vertex V)
{
EdgeNode* w;
visited[V] = 1;
printf(" %c", Graph->adjlist[v].vexdate);
w = Graph->adjlist[v].firstarc;
for(w = Graph->adjlist[v].firstarc; w; w = w->nextrarc)
{
if(!visited[w->adjvex])
DFS(Graph, w->adjvex);
}
}
*用邻接表存储图,有O(N + E)
*用邻接矩阵存储图,有O(N*N)
注:表示图常用的两种方法:(1)邻接表 (2)邻接矩阵