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; Function ArbolLleno(A: Arbol): Boolean;
Function RamaNula(P: PosicionArbol): Boolean; 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;
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;
Function InsertarNodoAVL(Var A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): Boolean;
Function EliminarNodoAVL(Var A: Arbol; X: TipoElemento; ComparaPor:CampoComparar): Boolean;