Untitled
unknown
plain_text
11 days ago
1.4 kB
5
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