arbol avl c++

Iniciado por jovanny12, 8 Abril 2014, 00:22 AM

0 Miembros y 1 Visitante están viendo este tema.

jovanny12

hola buen dia tengo un problema con la generacion de un arbol avl en c++ hasta el momento se como realizar un codigo de un arbol binario pero de hay las reglas de avl me cuestan bastante el codigo q llevo hasta el momento es el siguiente
struct arbol{
int n;
arbol*izq,*der;
};
typedef arbol *abb;
abb agrega(int x){
abb nuevo;
nuevo =new arbol;
nuevo->n=x;
nuevo->izq=NULL;
nuevo->der=NULL;
return nuevo;
}
void agregar(abb&elemento,int x){
if(elemento==NULL){
    elemento=agrega(x);
}else{
if(elemento->n>x)agregar(elemento->izq,x);
else{agregar(elemento->der,x);}}

}

void mostrar(abb elemento){
    if(elemento!=NULL){
mostrar(elemento->izq);
cout<<elemento->n<<"\t";
mostrar(elemento->der);}
}
void buscar(abb elemento,int a){
    if(elemento!=NULL){
if(a==elemento->n)
cout<<elemento->n<<"\t";
buscar(elemento->der,a);
buscar(elemento->izq,a);
}
}


si me pueden apoyar con el balanceo les agradeceria hasta luego


d91

#2
no se en que nivel estas estudiando, pero aqui tengo un codigo que no lo hice desde cero pero que si funciona perfectamente implementado con clases y con varias funciones implicitas que no las agregue al menu (incluye sus rotaciones)

EI: no hagamos tareas ajenas por favor.