Untitled
unknown
plain_text
a year ago
1.4 kB
9
Indexable
#include <iostream>
using namespace std;
struct Noeud {
int valeur;
Noeud* gauche;
Noeud* droite;
};
Noeud* creerNoeud(int valeur){
Noeud* nouveauNoeud = new Noeud;
nouveauNoeud->valeur = valeur;
nouveauNoeud->gauche = nullptr;
nouveauNoeud->droite = nullptr;
return nouveauNoeud;
}
Noeud* inserer(Noeud* racine, int valeur){ // copie, fiable
//2) void inserer(Noeud*& racine, int valeur){ // optimise les blocs
if (racine == nullptr){
return creerNoeud(valeur);
} else {
if (valeur < racine->valeur) {
racine->gauche = inserer(racine->gauche, valeur);
} else {
racine->droite = inserer(racine->droite, valeur);
}
}
return racine;
}
//Prefixe, Infixe, Suffixe
void afficherInfixe(Noeud* racine){
if(racine != nullptr) {
afficherInfixe(racine->gauche);
cout << "{Valeur=" << racine->valeur << "}" ;
afficherInfixe(racine->droite);
}
cout << endl;
}
Noeud* libererArbre(Noeud* racine){
if(racine != nullptr){
libererArbre(racine->gauche);
libererArbre(racine->droite);
delete racine;
}
racine = nullptr;
return racine;
}
int main(){
Noeud* racine = nullptr;
racine = inserer(racine, 50);
afficherInfixe(racine);
racine = inserer(racine, 30);
afficherInfixe(racine);
racine = inserer(racine, 70);
afficherInfixe(racine);
racine = libererArbre(racine);
cout << "libere arbre " << racine << endl;
return 0;
}Editor is loading...
Leave a Comment