#include "ArbreBinaireRecherche.h" SommetABR::SommetABR(Valeur v){ racine=v; SAG=NULL; SAD=NULL;Pere=NULL; } SommetABR::SommetABR(SommetABR& s){ racine=s.racine; SAG=NULL; SAD=NULL; if (s.SAG) GrefferSAG(new SommetABR(*(s.SAG))); if (s.SAD) GrefferSAD(new SommetABR(*(s.SAD))); } ABR SommetABR::PlusPetit(){ if (this->SAG==NULL){ return this; } else { return this->SAG->PlusPetit(); } } ABR SommetABR::RechercherValeur(Valeur v){ if (this!= NULL){ if( v < this->racine){ this->SAG->RechercherValeur(v); } else if (v > this->racine){ this->SAD->RechercherValeur(v); } else if ( v == this->racine){ return this; } } return NULL; } void SommetABR::InsererValeur(Valeur v){ if (v < racine){ if (SAG!=NULL){ SAG->InsererValeur(v); } else { GrefferSAG(SommetABR(v)); } } else { if (SAD!=NULL){ SAD->InsererValeur(v); } else { GrefferSAD(SommetABR(v)); } } } ABR SommetABR::SupMin(){ SupprimerValeur(PlusPetit()->racine); return this; } ABR SommetABR::SupprimerValeur(Valeur v){ if ( this!=NULL){ if (v < racine){ SAG->SupprimerValeur(v); } else if ( v > racine){ SAD->SupprimerValeur(v); } else { this->racine = this->SAD->racine; } } return NULL; } int main() { ABR A1=new SommetABR(11); ABR A2=new SommetABR(9); ABR A3=new SommetABR(14); ABR A4=new SommetABR(3); ABR A5=new SommetABR(20); A1->GrefferSAG(A2); A1->GrefferSAD(A3); A2->GrefferSAG(A4); A3->GrefferSAD(A5); std::cout<RechercherValeur(11)<