void bfs(int s) {
queue<int> q;
q.push(s);
while (!q.empty()) {
取出队首元素top
访问队首元素top
将队首元素出队pop
将top的下一层节点中未曾入队的节点全部入队,并设置为已入队
}
}
注意:
1、inq数组的含义只能是访问否,而不是是否入队,区别在于:有可能在队列中,但是还没出队,这样会造成重复入队
2、STL的queue,元素入队的push操作还真是知道了该元素的一个副本入队,,因为对原元素的修改不会影响队列的副本,队列的修改也不会影响原元素
->所以如果需要修改,最好存放编号而不是元素本身