BFS图 的广度优先遍历

《BFS图 的广度优先遍历》

代码:

#include <iostream>
#include<queue>
using namespace std;
/******************
*@Author:邱于涵
* @Description:广度优先搜索 广度优先遍历
*@Time:2016年10月16日11:33:24
* @注意 这个程序可能在算法上有些逻辑问题,本人没有仔细验证。
*****************************/
int main()
{
    //|邻接矩阵
    int vertex[8][8] = {
        { 0, 1, 0, 0, 0, 0, 0, 1 },
        { 1, 0, 1, 0, 0, 0, 0, 0 },
        { 0, 1, 0, 1, 0, 0, 1, 0 },
        { 0, 0, 1, 0, 1, 0, 0, 0 },
        { 0, 0, 0, 1, 0, 0, 0, 1 },
        { 0, 0, 0, 0, 0, 0, 1, 0 },
        { 0, 0, 1, 0, 0, 1, 0, 1 },
        { 1, 0, 0, 0, 1, 0, 1, 0 },
    };
    //|队列
    queue<int> *  pqueue=new queue<int>;
    //染色数组  记录访问过的顶点
    int color[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
    //第一个顶点压入队列
    pqueue->push(0);
    //循环的条件为队列不为空
    while(pqueue->empty()==false)
    {
        //|取队列头
        int vertexFront=pqueue->front();
        //|循环遍历这个顶点所连接的所有点
        for(int i=0;i<8;i++)
        {
            //|如果有链接,且没有走过 就输出这个点,并且把它放入队列
            if(vertex[vertexFront][i] == 1 && color[i]==0)
            {
                cout<<i<<",";
                color[i]=1;
                pqueue->push(i);
            }
        }
        //|把刚才遍历的点 弹出
        pqueue->pop();
    }
    cout << "BFS-End" << endl;
    return 0;
}

《BFS图 的广度优先遍历》

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/u012997311/article/details/52829672
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞