Sunteți pe pagina 1din 3

void cautareAdancime()

{ int i, j;
for(i=0;i<20;i++)
viz[i]=0;
noduri[0]=start;
nrNoduri=1;
viz[start]=1;
gasit = 0;
while(gasit==0 && nrNoduri!=0)
{ int nod=noduri[0]; // primul element din noduri
for(i=0;i<19;i++)
noduri[i]=noduri[i+1];
nrNoduri--;
if(nod==stop)
gasit=1;
else
{ for(i=0;i<20;i++)
if(a[nod][i]==1 && viz[i]==0)
{ for(int j = nrNoduri; j > 0; j--)
noduri[j] = noduri[j - 1];
noduri[0] = i;
nrNoduri++;
viz[i]=1;
parinte[i]=nod; }
}
}

void AdancimeLimitata(int limita)
{
int i, j;
for(i=0;i<20;i++)
{ viz[i]=0;
adancime[i]=0;
}
noduri[0]=start;
nrNoduri=1;
viz[start]=1;
adancime[start]=0;
gasit = 0;
while( gasit==0 && nrNoduri!=0 )
{int nod=noduri[0]; // primul element din noduri
//cout<<endl;
for(i=0;i<19;i++)
noduri[i]=noduri[i+1]; // stergem elementul de pe prima pozitie
nrNoduri--;
if(nod==stop)
gasit=1;
else
{ for(i=0;i<20;i++)
if(a[nod][i]==1 && viz[i]==0 && adancime[nod]<limita)
{ for(int j = nrNoduri; j > 0; j--)
noduri[j] = noduri[j - 1]; // adaugam pe prima pozitie
noduri[0] = i;
adancime[i]=adancime[nod]+1;
nrNoduri++;
viz[i]=1;
parinte[i]=nod;
}
}
}
if(gasit==0)
cout<<endl<<endl<<"Nu se poate gasi o ruta folosind cautarea in adancime limitata cu
limita "<<limita<<endl;
else
afisareSolutie("adancime limitata");

}

S-ar putea să vă placă și