summaryrefslogtreecommitdiff
path: root/sem_4/Algo/TP7/ArbreBinaireRecherche.cpp
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_4/Algo/TP7/ArbreBinaireRecherche.cpp
Initial commit
Diffstat (limited to 'sem_4/Algo/TP7/ArbreBinaireRecherche.cpp')
-rw-r--r--sem_4/Algo/TP7/ArbreBinaireRecherche.cpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/sem_4/Algo/TP7/ArbreBinaireRecherche.cpp b/sem_4/Algo/TP7/ArbreBinaireRecherche.cpp
new file mode 100644
index 0000000..ecd5af9
--- /dev/null
+++ b/sem_4/Algo/TP7/ArbreBinaireRecherche.cpp
@@ -0,0 +1,95 @@
+#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<<A1->RechercherValeur(11)<<std::endl;
+ return 1;
+}
+
+/* compiler avec g++ ArbreBinaireRecherche.cpp SortieLatex.cpp */