Arboles en Java

November 11, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Arboles en Java...

Description

 

  UNIVERSIDAD TECNOLOGICA DE TULA – TEPEJI TECNOLOGIAS DE LA INFORMACION ARBOLES EN JAVA BENJAMIN ALBARRAN SAN GERMAN 4-TIC-G2 Arboles

Página 1

Contenido INTRODUCCIÓN ...................................................................... ........................................................ 3 NODOS HIJOS Y PADRES ............................................................................ ................................... 4 Uso de los arboles ........................................................................... .................................................... 4 JUSTIFICACION ..................................................................... .......................................................... 4 DEFINICIONES Y TIPOS DE ARBOLES ........................................................................... ............ 5 Árboles analizadores ...................................................................... ..................................................... 5 ÁRBOL AVL ............................................................................... ....................................................... 5 ÁRBOLES BINARIOS PERFECTAMENTE EQUILIBRADOS ...................................................... 6 ÁRBOLES ROJINEGROS ........................................................................ ......................................... 6 Operaciones ....................................................................... .................................................................. 7 Reparación del balance del árbol ............................................................................. ........................... 7 Inserción ascendente ........................................................................ ................................................... 7 Reparación del balance............................................................................ ............................................ 8 Inserción descendente ....................................................................... .................................................. 8 ÁRBOLES B ................................................................................. ...................................................... 9 ÁRBOLES

 

B+ ................................................................................ ..................................................... 9 Búsqueda por clave ............................................................................. ................................................ 9 Inserción ......................................................................... ..................................................................... 9 Eliminación ....................................................................... .................................................................. 9 ÁRBOLES EQUILIBRADOS ...................................................................... .................................... 10 Inserciones en los “márgenes” ........................................................................ .................................. 10 Inserciones por “dentro”........................................................................... ......................................... 10 ÁRBOLES BINARIOS DE BÚSQUEDA .......................................................................... .............. 11 BÚSQUEDA .......................................................................... ........................................................... 12 BÚSQUEDA EN PROFUNDIDAD ....................................................................... .......................... 12 BÚSQUEDA POR AMPLITUD (O POR NIVELES) .................................................................... 13 RECORRIDOS ........................................................................ ......................................................... 13 ORDEN PREVIO O PREORDEN .......................................................................... .......................... 13 ORDEN SIMÉTRICO O INORDEN ........................................................................... ..................... 14 ORDEN POSTERIOR O POSTORDEN ......................................................................... ................. 14 INSERCIÓN ......................................................................... ............................................................ 15 Arboles Página 2 BORRADO ........................................................................... ............................................................ 15 TERMINOLOGÍA Y REPRESENTACIÓN DE UN ÁRBOL GENERAL ..................................... 16 ARBOLES GENERALES ......................................................................... ....................................... 17 Recorrido preorden .......................................................................... .................................................. 19 Recorrido postorden ......................................................................... ................................................. 20 CONVERSIÓN DE UN ÁRBOL GENERAL EN UN ÁRBOL BINARIO ..................................... 20 CONCLUSIONES ......................................................................

 

...................................................... 21 BIBLIOGRAFIAS ..................................................................... ....................................................... 21

Arboles

Página 3

INTRODUCCIÓN En el siguiente trabajo se hablara acerca de las estructuras de los Árboles, que se diferencia de las estructuras lineales en la forma de manejo de los datos, las estructuras lineales como su nombre lo indica se lo caracteriza cada elemento iba ordenadopor la linealidad tal así como los arrays que secuencialmente uno tras otra en índices continuas en la cual a cada elemento correspondía otro siguiente. En este caso en las estructuras no lineales cada elemento puede tener cualquier siguiente elemento, estas estructuras también son denominadas multienlazadas. Estaremos también mencionando los tipos de árboles empleados en la informática y las operaciones que se pueden realizar sobre las mismas y los recorridos que pueden llegar a tener tal así como el recorrido en: PRE Orden In Orden Post Orden Y les estaremos explicando de qué manera hacerlo ya que cada uno de ellos conlleva un orden especifico y una manera distinta dependiendo del tipo de árbol que se tenga. ARBOLES Un árbol consiste en un conjunto de nodos y un conjunto de aristas, de forma que se puede distinguir un nodo llamado raíz A cada nodo h, excepto la raíz, le llega una arista de otro nodo p (p padre de h, h uno de los hijos de p). · Para cada nodo hay un camino (secuencia de aristas) único desde la raíz. Arboles Página 4

NODOS HIJOS Y PADRES • Todos los nodos conectados a un nodo concreto son hijos o bien el padre de dicho

 

nodo. • Si el nodo conectado se encuentra en la única ruta a la raíz, dicho nodo recibe el nombre de padre. • Todos los nodos, salvo la raíz, tienen un único padre. • El resto de nodos conectados a un nodo concreto son los hijos del nodo. Uso de los arboles Árbol es el nombre que se le da a un grupo versátil de estructuras de datos. Se pueden utilizar para implementar un número de interfaces abstractas, incluida la interfaz List, pero las aplicaciones en las que resultan más útiles emplean estructuras de ramas de árboles para representar alguna propiedad de los elementos de los datos o para optimizar ciertos métodos. Los árboles binarios de búsqueda son una estructura de datos fundamental usada para construir más estructuras de datos abstractas como conjuntos y arrays asociativos. JUSTIFICACION En lo particular es necesario comprender el uso, manejo y creación de los diferentes árboles para así poderlos implementar en el futura ya que así nos ahorrara trabajo y esfuerzo cuando ya estemos estudiándolos mucho más afondo y detalladamente ya que este momento este documento solo básicas menciona cosas se encuentran estructurados. Arboles Página 5

de

árboles

solo

para

comprensión

de

ellos

ya

como

Al igual que lo anterior mencionado el principal objetivo de esta investigación es el de comprender todas las funciones de los arboles así como aprender como implantarlos y desarrollar un pensamiento mucho más rápido en cuestiones de comprensión. DEFINICIONES Y TIPOS DE ARBOLES • Camino: secuencia de nudos tales que cada uno es hijo del anterior • Longitud del camino: nº de nudos que tiene • Antecesor: un nudo es antecesor de otro si hay un camino del primero al segundo • Descendiente: un nudo es descendiente de otro si hay un camino del segundo al primero • Subárbol o Rama: Un nudo y todos sus descendientes Árboles analizadores • Considere una expresión aritmética que tal vez desee calcular con una calculadora: 3.14159*((6+3*1.17)/2)2 • Esta expresión se puede ver como un árbol en el que los nodos que no son hojas Contienen operadores y sus hijos contienen los operados, que pueden ser subexpresiones. El árbol resultante recibe el nombre de árbol analizador o de expresión. ÁRBOL AVL Es un árbol binario de búsqueda que cumple con la Condición de que la diferencia entre las

 

alturas de los subárboles de cada uno de sus Nodos es, como mucho 1. La denominación de árbol AVL viene dada por los creadores de tal estructura Arboles Página 6 (Adelson-Velskii y Landis). ÁRBOLES BINARIOS PERFECTAMENTE EQUILIBRADOS La eficiencia de las operaciones depende exclusivamente de la altura del árbol. Para un árbol de N nodos perfectamente equilibrado el coste de acceso es de orden logarítmico: O(log N). Sin embargo, se dice que si el árbol crece o decrece descontroladamente, el rendimiento puede disminuir considerablemente, siendo para el caso más desfavorable (insertar un conjunto de claves ordenadas en forma ascendente o descendente) el coste de acceso: O(N). En un árbol binario perfectamente equilibrado, el número de nodos en el subárbol izquierdo y el número de nodos en el subárbol derecho, difieren como mucho en una unidad, y los subárboles son también equilibrados ÁRBOLES ROJINEGROS Árbol binario de búsqueda, donde cada nodo está coloreado con los colores rojo o negro, y se verifican las siguientes propiedades: 1. es es negra. 2. La Si raíz un nodo rojo, sus hijos deben ser negros. 3. Todos los caminos desde un nodo a un nodo vacío deben contener el mismo número de nodos negros. Las condiciones (2) y (3) aseguran que el árbol nunca esté demasiado desbalanceado. (2) asegura que no puedan haber demasiados nodos rojos, y (3) dice que, despreciando el número de nodos rojos, que es limitado, el árbol es perfectamente balanceado. La condición (1) es trivial: si la raíz es roja, simplemente se colorea negra, ya que esto no violará ninguna regla. En los ARN la operación eliminar se complica. Cuando se necesitan árboles equilibrados y se requieren muchas eliminaciones se emplean los AA-Árboles que añaden una condición adicional a las impuestas por los ARN: 4. Los hijos izquierdos no pueden ser rojos. Arboles Página 7 Operaciones Se pueden realizar operaciones de búsqueda con complejidad O(log N), por lo expuesto anteriormente. Al realizar una inserción, la complejidad de búsqueda será O(log N), pero aparece un problema: el resultado será un árbol de búsqueda binario, pero no necesariamente un ARN. Si coloreamos el nuevo nodo rojo, el balance de negros quedará intacto, se coloreamospero negro, incurrirá en una

puede no se incurrir en una violación rojo-rojo. Si lo violación rojo-rojo, pero en este caso, siempre

 

alteraremos el balance de negros. Al eliminar, si el nodo a eliminar es negro, ambas violaciones pueden aparecer. Reparación del balance del árbol Una vez detectada una violación, se deben tomar medidas que reparen el balance del árbol. Estas medidas utilizan dos herramientas: rotaciones y cambios de color. Inserción ascendente Sea X la nueva hoja añadida, P su padre, S el hermano de P (si existe) y G el abuelo. 1. Los nuevos nodos se insertan en el árbol como hojas de color rojo. Arboles Página 8 2. Si el padre es negro, hemos acabado. 3. Si el padre es rojo violamos la regla 2, entonces debemos modificar el árbol de forma que se cumpla la regla (2) sin introducir violaciones de la propiedad (3). 4. Si el padre P es la raíz, se colorea negro. La altura negra aumenta en 1, pero el balance se preserva. Hemos acabado. Reparación del balance Asumiendo que P no es la raíz 5. Si S es rojo, se puede aplicar un cambio de color: Se elimina así la violación, y el balance de negros se mantiene. ¿Qué pasa si el padre de G es también rojo? Solución: propagar este hacia arriba hasta conseguir que no haya dos nodos rojos procedimiento consecutivos o alcanzar la raíz. Esta propagación es análoga a la que se hace en los árboles AVL. 6. Si S es negro, tenemos dos casos, con sus simétricos asociados: violación en el margen, y violación por dentro. 7. Si es una violación es por dentro, la convertimos a una violación en el margen haciendo una rotación: Como X y P son rojos, no añaden nada en el balance de negros a los caminos que pasan por g, de manera que el balance se preserva. 8. Teniendo el caso de violación por dentro, se efectúa una rotación simple. La rama izquierda de desbalancea, le falta un nodo negro para todos sus caminos, y aún tenemos la violación rojo-rojo. Solucionamos ambos problemas haciendo un cambio de color. Inserción descendente Objetivo: garantizar que en el momento de la inserción S no sea rojo, de manera que sólo haya que añadir una hoja roja y, si fuere necesario, realizar una rotación (simple o doble). En el camino descendente, si un nodo X tiene dos hijos rojos, el color de X cambia a rojo y el de sus dos hijos a negro. El número de nodos negros en los caminos por debajo de X permanece inalterable. Si X es la raíz, la convertiríamos en roja, hay que volver a negro (esto no puede violar ninguna de las reglas). Si el padre de X es rojo, hay que aplicar rotación simple o doble. ¿Qué pasa si el hermano del padre de X es también Esta situaciónrojo? NO puede darse, gracias al proceso efectuado en el camino descendiente.

 

Arboles

Página 9

ÁRBOLES B Mientras que la altura de un árbol binario completo es, aproximadamente, log 2 N, la altura de un árbol M-ario completo es, más o menos, log M N. Un B-árbol de orden M es un árbol M-ario que verifica:  Cada página, excepto la página raíz y las páginas hojas, tienen entre M/2 y M descendientes, y entre (M/2 -1) y (M-1) elementos.  La página raíz, o es una hoja o tiene entre 2 y M descendientes.  Las páginas hojas están todas al mismo nivel. ÁRBOLES B+ Las diferencias con los árboles B son que:  Sólo los nodos hoja apuntan a los registros o cubetas del fichero.  Existe un orden lineal entre las hojas, que están encadenadas mediante punteros para permitir un eficiente acceso secuencial. Búsqueda por clave Buscar en la raíz el valor k i   más pequeño mayor que la clave x. La búsqueda sigue por el puntero p i   hasta que llegue a un nodo hoja, que será donde esté el puntero al bloque o cubeta (cuando un elemento se encuentre en una página raíz o interior la búsqueda continuará por la rama derecha de dicha clave, hasta llegar a una hoja). Inserción Se busca el nodo hoja correspondiente y se inserta la clave si no está allí. Si tiene lugar una partición, se inserta una clave en el nodo padre, que será duplicada si la partición ocurre en una hoja. Eliminación Se busca el nodo hoja correspondiente y se elimina la clave. Si al eliminar una clave, n queda menor a (M/2 -1), entonces debe realizarse una redistribución de claves, tanto en el índice como en las páginas hojas. Arboles

Página 10

ÁRBOLES EQUILIBRADOS Un procedimiento de inserción que siempre restaure la estructura del árbol a un equilibrio perfecto es poco eficiente. Se usa una formulación menos estricta de “equilibrio”: Un árbol está equilibrado si para cada uno de sus nodos ocurre que las alturas de sus dos subárboles difieren como mucho en 1(Árboles AVL). Inserciones en los en “márgenes” 1 y 4: inserciones los “márgenes”: rotación simple: intercambia los papeles de los padres

 

y de los hijos, manteniendo la ordenación. // Rotación izquierda - izquierda private static NodoAVL rotarConHijoIzq(NodoAVL A) { NodoAVL B = (NodoAVL) A.getIzq(); //Asigna nombre A.setIzq(B.getDer()); B.setDer(A); return B; } Inserciones por “dentro” 2 y 3: inserciones por “dentro”: rotación doble. Notar que una rotación simple no resuelve el problema, ya que la rama que provocó el desequilibrio se descuelga del nodo promovido y se cuelga al nodo que desciende un nivel, de manera que se mantiene con la misma profundidad, que es la que provocó el desequilibrio. Por lo tanto, antes de rotar, debe desplazarse el desequilibrio a la rama correspondiente, es decir, transformamos el caso de una inserción por dentro, a un caso de inserción en el margen, utilizando una rotación. // Rotación izquierda - derecha private static NodoAVL rotarDobleConHijoIzq(NodoAVL A) { NodoAVL B = (NodoAVL) A.getIzq(); //Asigna nombre A.setIzq(rotarConHijoDer((NodoAVL) B)); return rotarConHijoIzq(A); } Como se ve, el problema se convirtió en un problema igual al del primer caso. Los pasos necesarios para suprimir un nodo en un árbol AVL son:  Suprimir el nodo como en un árbol binario de búsqueda.  En el regreso por el camino de supresión se comprueba el FE de los nodos.  Si un nodo presenta un FE incorrecto (2 o -2) se reestructura el árbol y se continúa el ascenso hasta llegar a la raíz. La reestructuración se efectúa cuando al regresar por el camino de búsqueda después de una inserción o una supresión se comprueba que la condición del FE se ha violado. Una supresión puede provocar varias reestructuraciones. En Arboles Página 11 la práctica se utilizan otros esquemas de equilibrio como los árboles rojinegros: como en los AVL las operaciones son logarítmicas en el peor caso. La ventaja es que las inserciones y eliminaciones pueden realizarse con un único recorrido descendente. ÁRBOLES BINARIOS DE BÚSQUEDA Un árbol binario de búsqueda (ABB) es un árbol binario definido de la siguiente forma: Todo árbol vacío es un árbol binario de búsqueda. Un árbol binario no vacío, de raíz R, es un árbol binario de búsqueda si: • En caso de tener subárbol izquierdo, la raíz R debe ser mayor que el valor máximo  Almacenado en el subárbol izquierdo, y que el subárbol izquierdo sea un árbol

 

binario de búsqueda. • En caso de tener subárbol derecho, la raíz R debe ser menor que el valor mínimo Almacenado en el subárbol derecho, y que el subárbol derecho sea un árbol binario de búsqueda. Para una fácil comprensión queda resumido en que es un árbol binario que cumple que el subárbol izquierdo de cualquier nodo (si no está vacío) contiene valores menores que el que contiene dicho nodo, y el subárbol derecho (si no está vacío) contiene valores mayores. Para estas definiciones se considera que hay una relación de orden establecida entre los elementos de los nodos. Que cierta relación esté definida, o no, depende de cada lenguaje de programación. De aquí se deduce que puede haber distintos árboles binarios de búsqueda para un mismo conjunto de elementos. La altura h en el peor de los casos siempre el mismo tamaño que el número de elementos disponibles. Y en el mejor de los casos viene dada por la expresión h = ceil(log 2 (c + 1)), donde ceil indica redondeo por exceso. El interés de los árboles binarios de búsqueda (ABB) radica en que su recorrido en inorden proporciona los elementos ordenados de forma ascendente y en que la búsqueda de algún elemento suele ser muy eficiente. Dependiendo de las necesidades del usuario que trate con una estructura de este tipo se podrá permitir la igualdad estricta en alguno, en ninguno o en ambos de los subárboles que penden de la raíz. Permitir el uso de la igualdad provoca la aparición de valores dobles y hace la búsqueda más compleja. Arboles Página 12 BÚSQUEDA La búsqueda consiste acceder a la raíz del árbol, si el elemento a localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se busca en el subárbol izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido encontrado se supone que no existe en el árbol. Cabe destacar que la búsqueda en este tipo de árboles es muy eficiente, representa una función logarítmica. El máximo número de comparaciones que necesitaríamos para saber si un elemento se encuentra en un árbol binario de búsqueda estaría entre [log 2 (N+1)] y N, siendo N el número de nodos. La búsqueda de un elemento en un ABB (Árbol Binario de Búsqueda) se puede realizar de dos formas, iterativa o recursiva. Ejemplo de versión iterativa

en

el

lenguaje

de

programación

C,

suponiendo

 

que estamos buscando una clave alojada en un nodo "dato" que precisamos encontrar: data Buscar_ABB(abb t,clave k) { abb p; dato e; e=NULL; p=t; if (!estaVacio(p)) { while (!estaVacio(p) && (p->k!=k) ) { if (k < p->k) { p=p->l; } if (p->k < k) { p=p->r; } } if (!estaVacio(p) &&(p->d!=NULL) ) {

donde

está

el

correspondiente

} e=copiaDato(p->d); } return e; } BÚSQUEDA EN PROFUNDIDAD (en inglés DFS o Depth First Search) es un algoritmo que permite recorrer todos los nodos de un árbol de manera ordenada, pero no uniforme. Su funcionamiento consiste en ir expandiendo todos y cada uno de los nodos que va localizando, de forma recurrente, en un camino concreto. Cuando ya no quedan más nodos que visitar en dicho camino, regresa, de modo que repite el mismo proceso con cada uno de los hermanos del nodo ya procesado. Arboles Página 13 BÚSQUEDA

POR

AMPLITUD (O POR NIVELES)

En este caso el recorrido se realiza en orden por los distintos niveles del árbol. Así, se comenzaría tratando el nivel 1, que sólo contiene el nodo raíz, seguidamente el nivel 2, el 3 y así sucesivamente. En el árbol de la figura el recorrido en amplitud sería: 2, 7, 5, 2, 6, 9, 5, 11 y 4. Al contrario que en los recorrido por niveles no naturaleza recursiva. Por

métodos de recorrido en profundidad, el es de ello, se debe utilizar una cola para recordar

los subárboles izquierdos y derecho de cada nodo. El esquema algoritmo para implementar

un

recorrido

por

niveles

es

 

exactamente el mismo que el utilizado en la versión iterativa del recorrido en preorden pero cambiando la estructura de datos que almacena los nodos por una cola. RECORRIDOS ORDEN PREVIO O PREORDEN Si el árbol es vacío, entonces la lista vacía es el listado de los nodos del árbol en Preorden. Si el árbol no es vacío, el listado en preorden de sus nodos está formado, primero, Por la raíz del árbol, seguido por los nodos del primer subárbol en preorden, luego Por los nodos del segundo subárbol en preorden, y así sucesivamente hasta los Nodos del último subárbol en preorden. Arboles

Página 14

ORDEN SIMÉTRICO O INORDEN Si el árbol es vacío, entonces la lista vacía es el listado de los nodos del árbol en Inorden. Si el árbol no por es Losvacío, nodos el dellistado primer en inorden de sus nodos está formado, primero, subárbol en inorden, seguido por la raíz del árbol, luego por Los nodos del segundo subárbol en inorden, y así sucesivamente hasta los nodos del Último subárbol en inorden.

ORDEN POSTERIOR O POSTORDEN Si el árbol es vacío, entonces la lista vacía es el listado de los nodos del árbol en postorden. Si el árbol no es vacío, el listado en postorden de sus nodos está formado, primero, por los nodos del primer subárbol en postorden, luego por los nodos del segundo subárbol en postorden, y así sucesivamente hasta los nodos del último subárbol en postorden, y finalmente, por la raíz del árbol. Arboles

Página 15

INSERCIÓN La inserción es similar a la búsqueda y se puede dar una solución tanto iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo como único contenido el elemento a insertar. Si no lo está, se comprueba si el elemento dado es menor que la raíz del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol derecho. De esta forma las inserciones se hacen en las hojas.

 

  BORRADO La operación de borrado no es tan sencilla como las de búsqueda e inserción. Existen varios casos a tener en consideración:  Borrar un nodo sin hijos ó nodo hoja: simplemente se borra y se establece a nulo el apuntador de su padre. Nodo a eliminar 74 Arboles Página 16  Borrar un nodo con un subárbol hijo: se borra el nodo y se asigna su subárbol hijo como subárbol de su padre. Nodo a eliminar 70  Borrar un nodo con dos subárboles hijo: la solución está en reemplazar el valor del nodo por el de su predecesor o por el de su sucesor en inorden y posteriormente borrar este nodo. Su predecesor en inorden será el nodo más a la derecha de su subárbol izquierdo (mayor nodo del subárbol izquierdo), y su sucesor el nodo más a la izquierda de su (menor subárbol derecho nodo del subárbol derecho). En la siguiente figura se muestra cómo existe la posibilidad de realizar cualquiera de ambos reemplazos: Nodo a eliminar 59 TERMINOLOGÍA Y REPRESENTACIÓN DE UN ÁRBOL GENERAL La representación y terminología de los árboles se realiza con las típicas notaciones de las relaciones familiares en los árboles genealógicos: padre, hijo, hermano, ascendente, descendiente, etc. RAIZ: Todos los árboles que no está vacíos tienen un único nodo raíz. Todos los demás elementos o nodos derivan o descienden de él. El nodo Raíz no tiene Padre es decir no es hijo de ningún elemento: PADRE: X es padre de Y sí y solo sí el nodo X apunta a Y. También se dice que X es antecesor de Y. HIJO: X es hijo de Y, sí y solo sí el nodo X es apuntado por Y. También se dice que X es descendiente directo de Y. HERMANO: Dos nodos serán hermanos si son descendientes directos de un mismo nodo. HOJA. Se le llama hoja o Terminal a aquellos nodos que no tienen ramificaciones (hijos). NODO. Son los Vértices o elementos del Árbol. NODO INTERIOR. Es un nodo que no es raíz ni Terminal. GRADO. Es el número de descendientes directos de un determinado nodo. GRADO DELPágina ARBOL Es Arboles 17 el máximo grado de todos los nodos del árbol.

 

NIVEL. Es el número de arcos que deben ser recorridos para llegar a un determinado nodo. Por definición la raíz tiene nivel 1. ALTURA. Es el máximo número de niveles de todos los nodos del árbol. Equivale al nivel más alto de los nodos más 1. PESO. Es el número de nodos terminales del árbol LONGITUD DE CAMINO. Es el número de arcos que deben ser recorridos para llegar desde la raíz al nodo X. Por definición la raíz tiene longitud de camino 1, y sus descendientes directos longitud de camino 2 y así sucesivamente. ARBOLES GENERALES Un árbol es un TDA que consta de un conjunto de I nodos y una relación H (paternidad) entre los nodos tal que: Hay un nodo especialmente designado, llamado la raíz del árbol A. Arboles Página 18

A los nodos que no son raíces de otros A, o sea, no tiene

subárboles se les denomina hojas del árbol

sucesores o hijos. Grado de un nodo: cantidad de hijos de un nodo Grado de un árbol: el mayor de los grados de todos sus nodos Nodo Hoja: a un nodo sin hijos o con grado = 0 Nodo Rama: a un nodo que tiene hijos, ósea a la raíz de un subárbol Arboles

Página 19

Árbol Completo de nivel n: es un árbol en el que cada no donde nivel n es una hoja y cada nodo de nivel menor que n tiene al menos un subárbol no vacío Recorrido preorden Arboles

Página 20

Recorrido postorden Recorridos Preorden: Se recorrido es Raíz - Izquierda - Derecha [*, + , A , B , - , C , D] Recorridos Inorden: Se recorrido es Izquierda - Raíz - Derecha [A , + , B, * , C , - , D ] Recorridos Postorden: Su recorrido es Izquierda - Derecha - Raíz [A , B , + , C , D , - , * , ] CONVERSIÓN DE UN ÁRBOL GENERAL EN UN ÁRBOL BINARIO Los hermanos se enlazan en forma horizontal (lineal), Se enlaza en forma vertical el padre con el que se encuentra más a la izquierda y se elimina el enlace de este padre conhijo los demás hijos. Se rota el diagrama resultante 45 grados hacia la izquierda.

 

  Arboles

Página 21

CONCLUSIONES De este trabajo se podría decir que los árboles se definen como un conjunto finito de elementos llamados nodos. En estos casos se puede usar terminología de relaciones familiares para descubrir las relaciones entre los nodos de un árbol; y que un árbol puede ser implementado fácilmente en una computadora. Es bueno hacer énfasis en esto ya que se puede saber mucho sobre lo que tiene que ver con los árboles; entre las cosas que podemos mencionar se encuentra la raíz, los nodos de un árbol y la diferencia entre nodos sucesores y nodos terminales, como se muestran en el contenido del trabajo. BIBLIOGRAFIAS Asignatura: Estructura de Datos Avanzada Tema: Árboles Centro de Estudio de Ingeniería de Sistemas (CEIS) Instituto Superior Politécnico “José Antonio Echeverría” (CUJAE) Arboles binarios de búsqueda.ppt ESTRUCTURAS DE DATOS – ÁRBOLES.pdf Inserta elimina y busca en un árbol binario http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm Arboles binarios y generales.pdf Clara Segura y Alberto Verdejo Dpto. de Sistemas Informáticos y Programación Universidad Complutense de Madrid Árboles AVL.pdf Sebastián Gurin (Cancerbero) Estructuras de datos y algoritmos.pdf Introducción a los árboles.pdf Instituto Universitario de Tecnología Industrial.pdf “Rodolfo Loero Arismendi” I.U.T.I.R.L.A.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF