You are on page 1of 3

//Santos 

Ruiz_____Beltran Galeana

#include "ArbolBB.h"
#include <iostream>

using namespace std;

ArbolBB::ArbolBB(){
    this‐>raiz = NULL;
}

ArbolBB::~ArbolBB(){
    if(this‐>raiz != NULL){
        cout<<"Datos que quedaron en el arbol";
        borraTodo(raiz);
    }
}

void ArbolBB::insertaUnNodo(int dato){
    insertaUnNodo(dato,this‐>raiz);
}

void ArbolBB::preOrden(void){
    NodoA* actual = this‐>raiz;
    preOrden(actual);
}

void ArbolBB::postOrden(void){
    NodoA* actual = this‐>raiz;
    postOrden(actual);
}

void ArbolBB::entreOrden(void){
    NodoA* actual = this‐>raiz;
    entreOrden(actual);
}

void ArbolBB::insertaUnNodo(int dato, NodoA* &aux){
    if(aux == NULL)
        aux = new NodoA(dato);
    else{
        if(dato <= aux‐>dameTuDato())
            insertaUnNodo(dato,aux‐>dameTuIzquierdo());
        else
            insertaUnNodo(dato,aux‐>dameTuDerecho());
    }
}

void ArbolBB::borraTodo(NodoA *&aux){
    if(aux){
        borraTodo(aux‐>dameTuIzquierdo());
        borraTodo(aux‐>dameTuDerecho());
        
        delete(aux);
    }
}

void ArbolBB::preOrden(NodoA *aux){
    if(aux){
        cout<<aux‐>dameTuDato()<< " ";
        preOrden(aux‐>dameTuIzquierdo());
        preOrden(aux‐>dameTuDerecho());
    }
}

void ArbolBB::postOrden(NodoA *aux){
    if(aux){
        postOrden(aux‐>dameTuIzquierdo());
        postOrden(aux‐>dameTuDerecho());
        cout<<aux‐>dameTuDato()<< " ";
    }
}

void ArbolBB::entreOrden(NodoA *aux){
    if(aux){
        entreOrden(aux‐>dameTuIzquierdo());
        cout<<aux‐>dameTuDato()<< " ";
        entreOrden(aux‐>dameTuDerecho());
    }
}

NodoA* ArbolBB::dameTuRaiz(void){
    return this‐>raiz;
}
NodoA* ArbolBB::nodoPadre(int dato){    
    NodoA* actual;
    actual = this‐>raiz;
        if(this‐>raiz != NULL){
            if(dato != raiz‐>dameTuDato()){
                actual = nodoPadre(dato, actual);
            }
        }
        else{
            cout<<"EL ARBOL ESTA VACIO";
        }
        return actual;
}

You might also like