Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESTRUCTURA DE DATOS
INTRODUCCION
Los rboles representan las estructuras no-lneales y dinmicas de datos. Dnamicas puesto que les estructura rbol puede cambiar durante la ejecucin de un programa. No lneales puesto que cada elemento del rbol pueden seguirle varios elementos.
Estructura de datos
ESTRUCTURA DE DATOS ARREGLOS REGISTROS CONJUNTOS ESTRUCTURA DINAMICA LISTAS RBOLES
ESTRUCTURA LNEALES
ESTRUCTURA NOLNEALES
ARREGLOS
REGISTROS CONJUNTOS PILAS COLAS
RBOLES
LISTA
Ing.Ma. SUSANA BELTRAN
RBOL
Un rbol es una estructura jerrquica aplicada sobre una coleccin de elementos, u objetos llamados nodos, uno de los cuales se conoce como RAIZ, se crea un parentesco entre los nodos dando lugar a tminos como, PADRE HIJO, HERMANO, ANTECESOR, SUCESOR, ANCESTRO.
APLICACIN DE RBOLES
FORMULAS MATEMATICAS ORGANIZAR LA INFORMACION HISTORIA DE UN CAMPONEATO DE TENIS CONSTRUCCION DE UN ARBOL GENEALOGICO ANALISIS DE CIRCUITOS ELECTRONICOS NUMERAR CAPITULOS Y SECCIONES DE UN LIBRO
Todo rbol que no es vaco, tiene un nico nodo raz. Un nodo X es descendiente de un nodo Y. Un nodo X es antecesor directo de un nodo Y. Los nodos descendientes de un padre son hermanos Todo nodo que no tiene hijos se conoce con el nombre de Terminal u Hoja. Todo nodo que no es raz ni terminal u hoja se conoce con el nombre de interior. Grado es el # descendientes directos de un determinado nodo. Grado de rbol es el mximo grado de todos los nodos del rbol. Nivel es el # de arcos que deben ser recorridos para llegar a un determinado nodo. La raz tiene nivel 1. Altura del rbol es el mximo nmero de niveles de todos los nodos del rbol.
Ing.Ma. SUSANA BELTRAN
RBOL GRAFO
A
DIAGRAMA DE VENN
A B E
C
G
H D F L
ANIDACIN DE PARNTESIS
(A(B(D(I),E,F(J,K)),(C(G,H(L))))
1. A, 1.1. B, 1.1.1. D, 1.1.1.1. I 1.1.2. E 1.1.3. F 1.1.3.1. J 1.1.3.2. K 1.2. C 1.2.1. G 1.2.2. H 1.2.2.1. L
NOTACIN INDENTADA
A B D I E F
J K
C G H
CLASIFICACIN
1. A es la raz del rbol 2. B es hijo de A, C es hijo de A, D es hijo de B, E es hijo de B, L es hijo de H 3. A es padre de B, B es padre de D, D es padre de I, C es padre de G, H es padre de L. 4. B y C son hermanos, D,E y F son hermanos, G y H son hermandos, J y K son hermanos. 5. I;E;J;K;G y L son nodos terminales u hojas 6. B, D, F,C y H son nodos interiores 7. El grado del no A es 2, El grado del nodo B es 3, El grado del Nodo C es 2, El grado del nodo D es 1, el grado del nodo E es 0, el grado del rbol es 3. 8. El nivel del nodo A es 1, el nivel del nodo B es 2, el nivel del nodo D es 3, El nivel del nodo C es 2, el nivel del nodo L es 4. 9. La altura del rbol es 4.
DEFINIR RBOLES
struct nodo { int dato; struct nodo *rama1; struct nodo *rama2; struct nodo *rama3; };
typedef struct _nodo { int dato; struct _nodo *rama[ORDEN]; } tipoNodo; typedef tipoNodo *pNodo; typedef tipoNodo *Arbol;
RECORRIDO DE UN RBOL
Pre-orden:
En este tipo de recorrido, el valor del nodo se procesa antes de recorrer las ramas: (VISITAR LA RAZ, RECORRE EL SUBRBOL IZQUIERDO, EL SUBRBOL DERECHO) void PreOrden(Arbol a) { if(a == NULL) return; Procesar(dato); RecorrerArbol(a->rama[0]); RecorrerArbol(a->rama[1]); RecorrerArbol(a->rama[2]); }
ABDIEFJKCGHL
In-orden:
En este tipo de recorrido, el valor del nodo se procesa despus de recorrer la primera rama y antes de recorrer la ltima. Esto tiene ms sentido en el caso de rboles binarios, y tambin cuando existen ORDEN-1 datos, en cuyo caso procesaremos cada dato entre el recorrido de cada dos ramas.(SUBRBOL IZUIERDO, VISITAR LA RAZ, AUBRBOL DERECHO)
void InOrden(Arbol a) {
RecorrerArbol(a->rama[2]); }
IDBEJFKAGCLH
Post-orden: En este tipo de recorrido, el valor del nodo se procesa despus de recorrer todas las ramas: (SUBRBOL IZQUIERDO, SUBRBOL DERECHO, VISITAR LA RAZ) void PostOrden(Arbol a) { if(a == NULL) return; RecorrerArbol(a->rama[0]); RecorrerArbol(a->rama[1]); RecorrerArbol(a->rama[2]); Procesar(dato); }
IDEJKFBGLHCA
EJERCICIO
L M Z K A
C N