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;
}
Mess with the best
Die Like the rest