Estructuras de datos
[Árboles II]
Árbol Binario
6
2
10
0
4
8
12
1
3
5
7
9
11
13
Definición
Estructura nodoarbol{ Estructura nodoarbol *izqnodo; Datodato; Estructura nodoarbol *dernodo; };
tipo Estructura nodoarbol NODO; tipo NODO *ARBOL;
Estructura del árbol
Tipo Nodo y puntero a Nodo
Funciones
inserta_nodo_nuevo(ARBOL *,int);eliminar(ARBOL *); balancear(ARBOL *); inorden(ARBOL *);
preorden(ARBOL *); postorden(ARBOL *); Ejemplos
Insertar
funcion inserta_nodo_nuevo(ARBOL *rarbol, int nuevo) si *rarbol es igual a NULL entonces*rarbol.dato=nuevo; *rarbol.izqnodo =NULL; *rarbol.dernodo=NULL; sino si nuevo es menor que *rarbol.dato entonces inserta_nodo_nuevo(*rarbol.izqnodo, nuevo); *rarbol.izqnodo = nuevo; sinoinserta_nodo_nuevo(*rarbol.dernodo, nuevo); *rarbol.dernodo= nuevo; fin del si fin del si fin de la función
Regresar a Funciones
Recorrido Pre-orden
funcion preorden(ARBOL *rarbol) si *rarbol es diferentede NULL entonces muestra *rarbol.dato; preorden( *rarbol.izqnodo); preorden( *rarbol.dernodo); fin del si fin de la función
Regresar a Funciones
Recorrido In-orden
funcion inorden(ARBOL*rarbol) si *rarbol es diferente de NULL entonces inorden( *rarbol.izqnodo); muestra *rarbol.dato; inorden( *rarbol.dernodo); fin del si fin de la función
Regresar a Funciones
Recorrido Post-ordenfuncion postorden(ARBOL *rarbol) si *rarbol es diferente de NULL entonces postorden( *rarbol.izqnodo); postorden( *rarbol.dernodo); muestra *rarbol.dato; fin del si fin de la función
Regresar a Funcionesfuncion eliminar (ARBOL *rarbol) ARBOL *aux; si *rarbol es diferente de NULL entonces si *rarbol.izqnodo es diferente de NULL entonces *aux=*rarbol; *rarbol=*rarbol.dernodo; free(*aux); sino si*rarbol.dernodo es diferente de NULL entonces *aux=*rarbol; *rarbol=*rarbol.izqnodo; free(*aux); sino free(*rarbol); fin del si fin del si fin del si fin de la función
Elimina
Regresar a...
Regístrate para leer el documento completo.