Professional Documents
Culture Documents
P4ABB B Santos Ruiz
P4ABB B Santos Ruiz
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;
}