BFS

来源:互联网 发布:redis mysql同步 编辑:程序博客网 时间:2024/06/06 07:39
void BFS(MGraph *graph){        LinkQueue queue;        int i,j,index;        QElemType temp;        initQueue(&queue);        // 初始化一个访问标记数组        for(i = 0; i < MAX_VERTEX_NUM; i ++){                vertexStatusArrForBFS[i] = 0;           }        // 从每一个点 出发 访问        for(j = 0; j < graph->vexnum; j ++){                if(vertexStatusArrForBFS[j] == 0){                        printf("%c",graph->vexs[j]);                        vertexStatusArrForBFS[j] = 1;                        enQueue(&queue,graph->vexs[j]);                        while(!queueEmpty(&queue)){                                deQueue(&queue,&temp);  //访问队列里的节点                                index = findIndex(graph,temp);                                for(i = 0; i < MAX_VERTEX_NUM; i ++){ // 寻找节点的邻接点                                        if(graph->arcs[index][i].adj != 0){                                                if(vertexStatusArrForBFS[i] == 0){                                                        printf("%c",graph->vexs[i]);                                                        vertexStatusArrForBFS[i] = 1;                                                        enQueue(&queue,graph->vexs[i]);                                                }                                        }                                               }                        }                }        }}
0 0
原创粉丝点击