Bonjour,
j'ai la fonction recusive ci-dessu, suposons qu'on a un cas qui passe par les etapes 2/3/5/2/3/4, normalement la valeur de retour de la fonction recursive c'est r (de l'etape 4).alors que le programme me retourn NULL . Quelqu'un peux m'expliquer pourquoi? merci.
Code :
- Noeud* Noeud::place(Noeud *r,vecteur v,int *pos)
- {
- if(r->nbEntree==0) /// === 1 ====
- {
- pos=0;
- return r;
- }
- for(int j=0;j<r->nbEntree;j++) /// === 2 ===
- {
- if(((r->fils[j]->MBR).VecteurInterRect(v))==0) /// === 3 ===
- {
- if((r->fils[j]->fils)==NULL) /// === 4 ===
- {
- *pos=j;
- (*r).afficher();
- return r;
- }
- else
- place(r->fils[j]->fils,v,pos); /// === 5 ==
- }
- }
- return NULL;///=== 6 ===
- }
|
Message édité par d_imane le 19-03-2006 à 20:50:04