深度优先搜索(DFS)是一个不断探查和回溯的过程。在探查的每一步,算法都有一个当前顶点。————意味着要用递归咯。
最初的当前顶点就是指定的起始点。
每一步探查过程中,首先对当前顶点v进行访问,并立即设置该顶点的访问标志为true,表示该顶点已经被访问过。
接着在v的所有邻接顶点中找出尚未访问过的一个,将其视为下一步探查的当前顶点,直到所有顶点都被访问过。
核心代码:
void DFS(T x)//
{
bool *remvisite;
remvisite = newbool[numVertexs];
for(inti=0;i<numVertexs;++i)
remvisite[i] =false;
DFS(x,remvisite);
delete []remvisite;
}
void DFS(T x,bool remvisite[])
{
int v = GetVerticespos(x);
remvisite[v] = true;