while (!q.empty()) { int v = q.front(); q.pop(); cout << v << " "; for (int i = 0; i < MAX_VERTICES; i++) { if (graph[v][i] != 0 && !visited[i]) { q.push(i); visited[i] = true; } } } }
时间: 2024-02-15 18:28:38 浏览: 49
queue-link.zip_C++队列_打印 队列_队列
这段代码实现了广度优先搜索(BFS)算法遍历图。其中,q 是一个队列,graph 是一个邻接矩阵表示的图,visited 数组用于记录每个顶点是否已被访问过。BFS 算法的基本思想是从起始顶点开始,依次访问相邻的顶点,并将其加入队列,直到队列为空。在代码中,首先从队列中取出一个顶点 v,并输出它的值。然后遍历与 v 相邻的顶点,如果该顶点未被访问过,则将其加入队列,并将 visited 数组中对应位置设为 true,表示已被访问过。整个过程一直进行,直到队列为空。
阅读全文