A voir également:
- Php
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Href php ✓ - Forum PHP
- Bouton php - Forum PHP
- Echo image php ✓ - Forum PHP
3 réponses
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
18 déc. 2006 à 15:47
18 déc. 2006 à 15:47
Bonjour,
Il y a en effet une petite erreur de programmation.
Reprenons ton algorithme : si je suis le noeud recherché, alors je me renvoie. Si je ne suis pas le noeud recherché, alors... Oui, alors, quoi ? Ben alors rien, je recherche si un de mes fils est le noeud recherché, mais je ne renvoie pas de résultat !
Par ailleurs, tu testes deux fois la même chose, tu peux supprimer un de tes tests.
Voilà ce que devient ta fonction :
Xavier
Il y a en effet une petite erreur de programmation.
Reprenons ton algorithme : si je suis le noeud recherché, alors je me renvoie. Si je ne suis pas le noeud recherché, alors... Oui, alors, quoi ? Ben alors rien, je recherche si un de mes fils est le noeud recherché, mais je ne renvoie pas de résultat !
Par ailleurs, tu testes deux fois la même chose, tu peux supprimer un de tes tests.
Voilà ce que devient ta fonction :
public function getNoeud($idArbre) { if ($this->_id == $idArbre) { return $this; } else { foreach ($this->_arbresChildren as $arbre) { return $arbre->getNoeud($idArbre); } } }Bon courage pour la suite :)
Xavier
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
18 déc. 2006 à 15:50
18 déc. 2006 à 15:50
En effet, mais il y a encore juste un petit oubli. Si on retourne directe le résultat dans la boucle des fils, si ce résultat est nul (c'est à dire que le noeud que l'on cherche n'est pas contenu dans le sous arbre fil) alors la recherche s'arrete là et renvoi nul au lieu de faire la meme chose dans les autres sous arbres fils.
Ainsi il faut transformer comme suit :
Ainsi il faut transformer comme suit :
public function getNoeud($idArbre) { if ($this->_id == $idArbre) { return $this; } else { $retour_fil = null; foreach ($this->_arbresChildren as $arbre) { $retour_fil = $arbre->getNoeud($idArbre); if ( $retour != null ) return $retour_fil; } } }
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
18 déc. 2006 à 15:56
18 déc. 2006 à 15:56
Bien sûr, suis-je bête ^^'