从图中某个顶点Vi出发,访问此顶点并作已访问标记,然后从Vi的一个未被访问过的邻接点Vj出发再进行深度优先遍历,当Vi的所有邻接点都被访问过时,则退回到上一个顶点Vk,再从Vk的另一个未被访问过的邻接点出发进行深度优先遍历,直至图中所有顶点都被访问到为止。
bool Visited[MAX];
DFS(inti)//图用邻接矩阵存储
{
Visited[i]=true; //访问顶点i
for (int j = 0; j < n; j++) //按深度优先搜索的顺序遍历与i相关联的所有顶点
if (!Visited[j]) and (Data[i][j]=1) DFS(j);
}