Probleme de rechercher dans un arbre

cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006 - 3 août 2005 à 16:00
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009 - 3 août 2005 à 22:26
Voila. J'ai un arbre binaire qui stock des classe CProduit. Et je veux faire une recherche dedans. La fonction que j'ai fait pour l'instant fait planter mon programme. Il m'affiche le resultat et quand je veux fermer mon ecran, tout se fige. Voici mon algo de recherche :

CProduit CListeProduit::Afficher (TCHAR* p_code)
{
CProduit tmp;


//Si on est pas sur le bon produit
if (wcscmp(p_code,TEXT("")) != 0)
{
//Alors si le code est plus grand
if (wcscmp(p_code, m_valeur.GetGenCode()) > 0)
{
//Et que la branche de droite existe
if (m_droite == NULL)
return tmp;
else
//On va chercher dans la branche de droite
tmp = m_droite->Afficher(p_code);
}
else if(wcscmp(p_code, m_valeur.GetGenCode()) < 0)
{
if (m_gauche == NULL)
return tmp;
else
tmp = m_gauche->Afficher(p_code);
}
else
tmp = m_valeur;


}
else
tmp = m_valeur;


return tmp;
}

Et voici mon arbre :

class CListeProduit
{
private:
CProduit m_valeur;
class CListeProduit *m_gauche;
class CListeProduit *m_droite;


public:
void Insert (CProduit p_ajout);
void Liberer ();
void Rechercher (TCHAR* p_code);
CProduit Afficher (TCHAR* p_code = TEXT(""));
CListeProduit()
{
m_gauche = NULL;
m_droite = NULL;
}
~CListeProduit()
{
//Liberer();
}


};

Merci d'avance


<CENTER>Mess with the best
Die Like the rest</CENTER>

6 réponses

xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
3 août 2005 à 16:17
Tu as droit aux 'template' dans ton photocopieur (ou je sais plus quoi comme appareil) ?
0
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
3 août 2005 à 16:19
c'est un scanner ;)

Et je ne sais pas je n'ai pas eu a essayer encore. Pourquoi ?


<CENTER>Mess with the best
Die Like the rest</CENTER>
0
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
3 août 2005 à 16:23
Ca serait bien du point de vue conceptuel de séparer l'objet "Arbre Binaire" de l'objet CProduit. En faisant une classe générique (template) CArbreBinaire... Enfin comme tu le sens !

m_valeur.GetGenCode() <- c'est quoi ca ?
0
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
3 août 2005 à 16:30
C'est juste une fonction qui retourne un TCHAR* de ma classe CProduit.

Pour le template j'y avais pense... Mais c'est vrai que la j'aimerai juste que ca marche. Mais j'y penserai.


<CENTER>Mess with the best
Die Like the rest</CENTER>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 août 2005 à 20:27
Pourquoi tu utilises pas map ou set (la STL quoi)?
0
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
3 août 2005 à 22:26
Il a déjà répondu. C'est pour de l'enfoui.
0
Rejoignez-nous