Ver Mensaje Individual
  #1  
Antiguo 01-08-2013
avechuche avechuche is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 23
Reputación: 0
avechuche Va por buen camino
Problemas con árboles binarios

Hola gente, necesito ayuda (De esto depende si apruebo o no Programación II ^^)

Tengo que hacer 5 ejercicios si o si (Además de aprobar el final) para aprobar la materia. Hice los 3, pero los otros dos no tengo ni idea (Al menos de uno)

1) Tengo que crear un algotirmo recursivo o no, que me permita construir un árbol binario de búsqueda a partir de un árbol binario.
2) Tengo que crear una función que me diga si un árbol es binario de búsqueda.

Les dejo el TAD que usamos, por si quieren intentar con ellos, o si tienen otros, desp me las arreglo para transformalo.
Código Delphi [-]
Procedure CrearArbolNulo(Var A: Arbol);
Function ArbolNulo(A: Arbol): Boolean; // Sinonimo de arbol vacio
Function ArbolLleno(A: Arbol): Boolean;
Function RamaNula(P: PosicionArbol): Boolean; // Controla si un apuntador es nil
Function RecuperarDatos(A: Arbol; P: PosicionArbol; Var X: TipoElemento): Boolean;
Function CargarArbol(Var A: Arbol): Boolean;
Function PreOrden(A: Arbol): String;
Function InOrden(A: Arbol): String;
Function PostOrden(A: Arbol): String;
Function Anchura(A: Arbol): String;
Function PreOrdenITE(A: Arbol): String;
Function Altura(A: Arbol): Integer;
Function BuscarPreOrden(A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): PosicionArbol;
Function Nivel(A: Arbol; Q:PosicionArbol): Integer;
Function HijoIzquierdo(A: Arbol; P: PosicionArbol): PosicionArbol;
Function HijoDerecho(A: Arbol; P: PosicionArbol): PosicionArbol;
Function Padre(A: Arbol; Hijo: PosicionArbol): PosicionArbol;
// Busqueda Binaria
Function InsertarNodo(Var A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): Boolean;
Function EliminarNodo(Var A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): Boolean;
Function BusquedaBinaria(A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): PosicionArbol;
// Busqueda Binaria Balanceado
Function InsertarNodoAVL(Var A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): Boolean;
Function EliminarNodoAVL(Var A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): Boolean;
Responder Con Cita