DFS算法
模板
Node bfs(node start, node end){
memset(vis, 0, sizeof(vis));
queue<node> que;
que.push(start);
vis[start] = 1;
while(!que.empty()){
Node a = que.front();
que.pop();
if(a == end){
return a;
}
for(对于a所有的后继结点b){
if(vis[b]){
continue;
}
que.push(b);
vis[b] = 1; //剪枝
}
return NULL;
}
}

