infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Dragos din Februarie 09, 2010, 14:24:47



Titlul: Backtracking recursiv fara parametrii=> nu folosim spatiu pe segmentul de stiva?
Scris de: Dragos din Februarie 09, 2010, 14:24:47
Salut!
Am o intrebare legata de backtacking. Daca fac un DFS ca mai jos fara parametrii si cu o stiva declarata global merge? Si cel mai important foloseste sau nu memorie de pe segmentul de stiva?
Cod:
#define push_back pb
vector<int> stack;
int viz[100005];

int DFS()
{
u=stack.top();
vizitat[u]=true;
foreach(Vecin[u],vecin)// vecin e un vecin al lui u
 if(vizitat[vecin]==false)
  {
   stack.pb(vecin)
   DFS()
   stack.pop();
  }
}


int main()
{
stack.pb(1);
DFS();
presunere=true;
for(i=1;i<=n;i++)
 if(vizitat[i]==0)
   presupunere=false;
if(presupunere==false)
  cout<<"nu "
cout<<"este graf conex";
return 0;
}
Scuze pentru pseudo-Code++-ul meu.
 Sper sa se inteleaga!


Titlul: Răspuns: Backtracking recursiv fara parametrii=> nu folosim spatiu pe segmentul de stiva?
Scris de: Mircea Dima din Februarie 09, 2010, 14:39:09
Tu oricum depui cel putin o adresa de memorie (adica cel putin 4 bytes) pe stiva...