您的位置:首页 > 其它

BFS

2015-08-07 15:58 471 查看
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]);
}
}
}
}

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: