这是本文档旧的修订版!
下面是利用队列的BFS非递归实现
void bfs(int v)//以v开始做广度优先搜索(非递归实现,借助队列) { list<int>::iterator it; visited[v] = true; cout << v << " "; queue<int> myque; myque.push(v); while (!myque.empty()) { v = myque.front(); myque.pop(); for (it = graph[v].begin(); it != graph[v].end(); it++) { if (!visited[*it]) { cout << *it << " "; myque.push(*it); visited[*it] = true;//访问过 } } } cout << endl; }