从图中某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发,深度优先搜索遍历图,直至图中所有和v有路径相通且未被访问的顶点都被访问到。若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。
#include<vector>
struct GraphNode
{
int label;
std::vector<GraphNode*> neighbors;
GraphNode(int x) : label(x) {
};
};
void DFS_Graph(GraphNode * node, int visit[])
{
visit[node->label ]= 1;
printf("%d ", node->label);
for (int i = 0