Arbre binaire

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 à 11:25
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 à 12:56
Salut a tous. Je me permets de venir vous demandez une petite vérification.
Je suis en train de créer un arbre binaire et je voulais savoir si l'un d'entre vous pouvais me dire ce qu'il pensait de la maniere dont je m'y prends...

Je manques un peu d'expérience avec les pointeurs et je me demande si la maniere dont je crée les feuilles est valide.
J'ai deja regardé les exemples sur le site, mais deux precautions valent mieux qu'une :)

Merci d'avance

Voila la déclaration de ma classe :

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 ();
CListeProduit()
{
m_gauche = NULL;
m_droite = NULL;
}
~CListeProduit()
{
Liberer();
}


};

Voici l'ajout :

void CListeProduit::Insert (CProduit p_ajout)
{
if (wcscmp(m_valeur.GetGenCode(),TEXT("")) != 0)
{
if (wcscmp(m_valeur.GetGenCode(), p_ajout.GetGenCode()) > 0)
{
if (m_gauche == NULL)
this->m_gauche = new CListeProduit;


m_gauche->Insert(p_ajout);


}
else
{
if (m_droite == NULL)
this->m_droite = new CListeProduit;


m_droite->Insert(p_ajout);
}
}
else
m_valeur = p_ajout;
}

ET voici la suppression de l'arbre :

void CListeProduit::Liberer()
{
if (m_gauche != NULL)
m_gauche->Liberer();
if (m_droite != NULL)
m_droite->Liberer();


delete m_gauche, m_droite;
}

Enfiin, le renvoi d'un element... Bon Ok pour l'instant c'est naze... mais apres je metterai la recherche.. Je veux juste valider ca deja :)

CProduit CListeProduit::Afficher ()
{
return m_valeur;
}


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

2 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 à 12:37
Dans la STL, std::list ou std::slist ne te convient pas ?
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 à 12:56
Le probleme est que je dev pour un TSP (les scanners type supermarché) et que donc je bosses sur un SDK spécial... J'ai voulu utiliser la STL mais apres info aupres du construteur... C'est pas trop faisable.


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