arboles

7
Diego Rojas Vega Algoritmos y Estructuras de Datos Árboles ____________________________________________________________________________________________________________________ ÁRBOLES Los árboles representan las estructuras no lineales y dinámicas de datos más importantes en computación. Los árboles pueden ser construidos con estructuras estáticas y dinámicas. Las estáticas son arreglos, registros y conjuntos, mientras que las dinámicas están representadas por listas. Un árbol es una estructura jerárquica aplicada sobre una colección de elementos u objetos llamados nodos; uno de los cuales es conocido como raíz. Además se crea una relación o parentesco entre los nodos dando lugar a términos como padre, hijo, hermano, antecesor, sucesor, ancestro, etc. Existen diferentes formas de representación de un árbol, entre las más comunes se tienen las siguientes: Mediante círculos y flechas, Mediante paréntesis anidados. Algunas veces se incluye entre los árboles el árbol nulo vacío, el cual, es un árbol sin nodos que se representa mediante la letra . La terminología que por lo regular se utiliza para el manejo de árboles es la siguiente: -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. -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. -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. -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 DEL ARBOL Es 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. -PESO. Es el número de nodos del árbol sin contar la raíz.

Upload: infobran

Post on 13-Jun-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Arboles

Diego Rojas Vega Algoritmos y Estructuras de Datos Árboles____________________________________________________________________________________________________________________

ÁRBOLES

Los árboles representan las estructuras no lineales y dinámicas de datos más importantes en computación. Los árboles pueden ser construidos con estructuras estáticas y dinámicas. Las estáticas son arreglos, registros y conjuntos, mientras que las dinámicas están representadas por listas.

Un árbol es una estructura jerárquica aplicada sobre una colección de elementos u objetos llamados nodos; uno de los cuales es conocido como raíz. Además se crea una relación o parentesco entre los nodos dando lugar a términos como padre, hijo, hermano, antecesor, sucesor, ancestro, etc.

Existen diferentes formas de representación de un árbol, entre las más comunes se tienen las siguientes: Mediante círculos y flechas, Mediante paréntesis anidados. Algunas veces se incluye entre los árboles el árbol nulo vacío, el cual, es un árbol sin nodos que se representa mediante la letra .

La terminología que por lo regular se utiliza para el manejo de árboles es la siguiente:

-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.

-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.

-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. -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 DEL ARBOL Es 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. -PESO. Es el número de nodos del árbol sin contar la raíz. -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.

ORDEN DE LOS NODOS. Generalmente los árboles de un nodo se ordenan de izquierda a derecha. Si no se toma en cuenta el orden de los nodos hijos, entonces se habla de un árbol no ordenado.

Page 2: Arboles

Diego Rojas Vega Algoritmos y Estructuras de Datos Árboles____________________________________________________________________________________________________________________

ÁRBOLES BINARIOS

Un árbol binario es un árbol de grado 2, en el que todo nodo del árbol tiene un subárbol binario izquierdo y derecho asociados.

Árbol Binario Completo o Lleno: Es un árbol binario en el que todos sus nodos, excepto las hojas, tienen siempre dos hijos (el subárbol izquierdo y el derecho) no nulos. El número de nodos de un árbol completo se calcula por la fórmula: Número de nodos = 2h-1 (donde h es la altura)

Árbol Binario Completo de Altura o Profundidad H: Es un árbol Binario Completo en donde todas las hojas están en el nivel H. Esta es una de las pocas estructuras de árbol que se pueden representar eficientemente usando arreglos.

Una expresión es una secuencia de componentes léxicos (tokens), que siguen reglas preescritas. Un token puede ser un operador o un operando. Un árbol binario de búsqueda es un árbol en el que todo nodo existente tiene un sólo elemento y cumplen lo siguiente:

-Cada hoja es un operando.DE -El nodo raíz y los nodos internos son operadores.EXPRESION -Los subárboles son sub_expresiones en las que

el nodo raíz es un operador.

ÁRBOLESBINARIOS -Todas las claves del subárbol izquierdo son menores

que la raíz.DE - Todas las claves del subárbol derecho son mayoresBUSQUEDA que la raíz.

-Los subárboles izquierdo y derecho son también árboles de búsqueda.

Representación en memoria

Hay dos formas tradicionales de representar un árbol binario en memoria:

1.-Por medio de datos tipo punteros también conocidos como variables dinámicas o listas. Esta es la forma más utilizada, puesto que es la más natural para tratar este tipo de estructuras.

2.-Por medio de arreglos. Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar al subárbol izquierdo y derecho del subárbol en cuestión.

Page 3: Arboles

Diego Rojas Vega Algoritmos y Estructuras de Datos Árboles____________________________________________________________________________________________________________________

Clasificación de árboles binarios:Existen cuatro tipos de árbol binario:

DISTINTOS. Dos árboles binarios son distintos cuando sus estructuras son diferentes.

SIMILARES. Dos árboles binarios son similares cuando sus estructuras son idénticas, pero la información que contienen sus nodos es diferente.

ÁRBOLESBINARIOS EQUIVALENTES. Son aquellos árboles que son similares y que Además los nodos contienen la misma información.

COMPLETOS. Son aquellos árboles en los que todos sus nodos excepto los del último nivel, tiene dos hijos; el subárbol izquierdo y el subárbol derecho.

Recorrer el subárbol izquierdoINORDEN Examinar la raíz Recorrer el subárbol derecho inorden

RECORRIDO DE Examinar la raízUN ARBOL PREORDEN Recorrer el subárbol izquierdo en preorden Recorrer el subárbol derecho en preorden

Recorrer el subárbol izquierdo en postorden

POSTORDEN Recorrer el subárbol derecho en postorden Examinar la raíz

Además de estos recorridos tradicionales, se tienen los recorridos conversos, en los que el orden del recorrido se invierte a derecha- izquierda, en vez de izquierda –derecha. Finalmente existe un recorrida llamado nivel por nivel en el que los nodos del árbol se visitan por niveles a partir de cero y de izquierda a derecha.

Árboles binarios enlazadosAlgún nodo del árbol contiene un puntero hacia otro árbol.

BosqueEntenderemos como bosque a un conjunto normalmente ordenado de dos o más árboles generales.

Page 4: Arboles

Diego Rojas Vega Algoritmos y Estructuras de Datos Árboles____________________________________________________________________________________________________________________

ÁRBOLES AVL

Un árbol AVL es un árbol binario de búsqueda al que se le añade una condición de equilibrio. Esta condición es que para todo nodo la altura de sus subárboles izquierdo y derecho pueden diferir a lo sumo en 1. AVL son las iniciales de Adelson-Velskii y Landis, los hombres que idearon este tipo de árbol.

ÁRBOLES B

Los árboles B deben cumplir las siguientes características en cuanto a estructura:

1. Todas las hojas en el árbol están al mismo nivel.2. Cada nodo contiene entre n y 2n elementos, excepto la raíz que tiene entre 1 y 2n.3. Si en nodo tiene m elementos, en nodo contendrá 0 ó m+1 hijos.4. Los elementos de un nodo del árbol están ordenados linealmente en el nodo.5. Los elementos del árbol B están organizados siguiendo las propiedades de un ABB, es

decir, los elementos menores a la izquierda y los mayores a la derecha del nodo original.