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
| noeud* arbre :: generer() // cette méthode va générer l'arbre entier (la racine et les noeuds gauches et droits)
{
racine = creer(1);
int h; // profondeur (=hauteur) de l'arbre
cout << "Entrer la profondeur (hauteur) de l'arbre binaire parfait : ";
cin >> h;
std :: queue<noeud> file; // file de type "noeud"
while (nb_noeud < ((2^(h+1))-1))
{
int i;
int val_gauche = 2*i;
int val_droit = 2*i+1;
file.push(*racine);
racine->filsg = creer(val_gauche);
racine->filsd = creer(val_droit);
file.push(*filsg);
file.push(*filsd);
file.pop();
} |