您的位置:首页 > 编程语言 > C语言/C++

深度优先搜寻(DFS) C语言实现

2014-10-18 20:44 330 查看
伪代码





#define Black 2
#define Gray 1
#define White 0
#define Infinite -1
#define NIL -1

struct map{
int d;
int f;
int color;
int parent;
} vertix[100];
int time;

void DSF(int a[100][100],int n){
int i;
for(i = 0;i<n;i++){
vertix[i].color = White;
vertix[i].parent = NIL;
}
time = 0;
for(i = 0;i<n;i++)
if(vertix[i] == White)
DSFvisit(a,n,i);
}

void DSFvisit(int a[100][100],int n,int num){
int i;
vertix[num] = Gray;
time++;
vertix[num].d = time;
for(i = 0;i<n;i++)
if(a[num][i])
if(vertix[i].color == White){
vertix[i].parent = num;
DSFvisit(a,n,i);
}
time++;
vertix[num].f = time;
vertix[num].color = Black;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: