Salut, je voudrais creer une classe arbre, ou les noeuds ont au maximum n fils.
J'ai fait un petit truc, j'aimerais savoir s'il n'y a pas des erreurs grossieres (au niveau du style), mais surtout j'ai un probleme quand j'affiche un arbre : il ne va qu'a un rang plus loin... enfin il affiche le noeud courant et ses fils seulement, pas les petits fils.
Voila le .h :
Et le .cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class Arbre { public: Arbre(){}; ~Arbre(); void init(int valeur, int profondeur); void Arbre::affiche(); void Arbre::ajouteFils(Arbre fils); private: Arbre *fils; int val; int arite; int profondeur; //racine a pour profondeur 0 };
Vous l'aurez compris je debute, mais je n'ai pas reussi a trouver beaucoup d'info sur les arbres NON binaires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 void Arbre::init(int val, int profondeur) { Arbre *liste_de_fils=new Arbre[8]; if(!liste_de_fils) exit(0); this->fils=liste_de_fils; this->val=val; this->arite=0; this->profondeur=profondeur; } Arbre::~Arbre() { if (fils!=NULL) for (int i=0;i<arite;i++) (fils[i]).~Arbre(); } void Arbre::ajouteFils(Arbre fils) { this->fils[arite]=fils; arite++; } void Arbre::affiche() { cout << val << "("; if (fils!=NULL) for (int i=0;i<arite;i++) (fils[i]).affiche(); cout << ")"; }![]()
Partager