1.深度优先遍历 尽可能再前进方向上搜索,能进则进,力求达最远顶点
图的深度优先搜索虽然类似树的先序遍历,却不像树的遍历那样有唯一的结果序列。第一,取决于开始遍历的结点不固定;第二,由于对图建立的邻接表不同而不同
int visited[MAX_VERTEX_NUM]={0};
void DFSTraverse(ALGraph g)
{
for(v=0;vadjvex])
DFS(g,p->adjvex);
p=p->nextarc;
}
}
2.广度优先搜索
void BFSTraverse(ALGraph g,int v0)
{
for(v=0;vadjvex;
if(!visited(w))
{
VisitFunc(w);
visited[w]=1;
EnQueue(Q,w);
}
p=p->nextarc;
}
}
}