模板 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; } }