一、综述
BFS蛮简单的,没什么好的综述的。
BFS算法的算法过程与它是有向图还是无向图没有关系,也与用邻接图还是用矩阵表示也没有关系。本文的代码是用邻接图实现的,例子是22-3的有向图。
用邻接矩阵实现的BFS 见算法导论-22.2-3-邻接矩阵实现图的广度优先搜索
二、代码
1.Link_Graph.h
#include <iostream>
#include <queue>
using namespace std;
#define N 100
#define WHITE 0
#define GRAY 1
#define BLACK 2
queue<int> Q;
struct Vertex;
struct Edge
{
int start;
int end;
int value;
Edge *next;
Edge(int s, int e, int v):start(s),end(e),value(v),next(NULL){}
};
struct Vertex
{
int color;
int d;
int Pie;
Edge *head;
Vertex():head(NULL),color(WHITE),d(0x7fffffff),Pie(0