کد الگوریتم dfs

nazi1995

عضو جدید
#include<stdio.h>
#include<conio.h>

void initialization(void);
void DFS_VISIT(int u);
void output(void);

int time,visit[50],parent[50],adj[50][50],d[50],f[50],N,E;

main()
{
int i;
clrscr();
initialization();
printf("DIscovering Sequence:\n");

for(i=1;i<=N;++i)
{
if(visit==0)
DFS_VISIT(i);
}
output();
getch();
}

void initialization(void)
{
int i,S,D,j;
FILE *fp;
fp=fopen("dfsin.txt","r");
fscanf(fp,"%d %d",&N,&E);

for(i=1;i<=E;++i)
{
fscanf(fp,"%d %d",&S,&D);
adj[D]=1;
}

for(i=1;i<=N;++i)
{
visit=0;
parent=0;
}
time=0;
}

void DFS_VISIT(int u)
{
int v;
visit=1;
d=++time;
printf("%d ",u);
for(v=1;v<=N;++v)
{
if(adj[v]==1)
{
if(visit[v]==0)
{
parent[v]=u;
DFS_VISIT(v);
}
}
}
f=++time;
}
void output(void)
{
int i;
printf("\n\nSelected Edges:\n");
for(i=1;i<=N;++i)
{
if(parent!=0)
printf("%d -> %d\n",parent,i);
}

printf("\nNode\td\tf\n");
printf("--------------------\n");

for(i=1;i<=N;++i)
{
printf("%d\t%d\t%d\n",i,d,f);

}
}
 

Similar threads

بالا