Вы находитесь на странице: 1из 6

UNIVERSIDAD ANDINA DEL CUSCO

FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS
ALGORITMICA Y LABORATORIO DE PROGRAMACIN II 2016-I
III. Unidad: ESTRUCTURAS DE DATOS DINAMICAS
3.1 Estructuras de datos No Lineales: Tipo Abstracto de Datos (TAD) RBOLES:

Sesin 14: Listas tipo rboles


El rbol es una estructura de datos muy importante en informtica y en ciencias de la
computacin. Los rboles son estructuras no lineales, al contrario que los arrays y las
listas enlazadas, que constituyen estructuras lineales.
Los rboles se utilizan para representar frmulas algebraicas, para organizar objetos en
orden de tal forma que las bsquedas sean muy eficientes y en aplicaciones diversas
tales como inteligencia artificial o algoritmos de cifrado. Casi todos los sistemas
operativos almacenan sus archivos en rboles o estructuras similares a rboles.
Adems de las aplicaciones citadas, los rboles se utilizan en diseo de compiladores,
procesadores de texto y algoritmos de bsqueda.
Un rbol consta de un conjunto finito de elementos, denominados nodos y de un
conjunto finito de lneas dirigidas, denominadas ramas, que conectan los nodos. El
nmero de ramas asociado con un nodo es el grado del nodo.

Figura 1. rbol

RBOLES BINARIOS
Un rbol binario es un rbol cuyos nodos no pueden tener ms de dos subrboles. En
un rbol binario, cada nodo puede tener cero, uno o dos hijos (subrboles). Se conoce
el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

Nota
Ing. Ramiro Mora Jimnez

Figura 2. rboles binarios

UNIVERSIDAD ANDINA DEL CUSCO


FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS
ALGORITMICA Y LABORATORIO DE PROGRAMACIN II 2016-I
Un rbol binario no puede tener ms de dos subrboles.
Algunos conceptos de la estructura de datos tipo rbol:
Nodo Padre de un nodo N es aquel que apunta al mismo. En un rbol cada nodo slo
puede tener un padre. En el ejemplo 1, A es el padre de B y C, y a su vez, B es el padre
de D.
Nodo Hijo de otro nodo A es cualquier nodo apuntado por el nodo A. Un nodo puede
tener varios hijos. En el ejemplo 1, B y C son los nodos hijos de A y todos los nodos
tienen uno o dos hijos.
Nodo Raz es el nico del rbol que no tiene padre. En la representacin que hemos
utilizado, el nodo raz es el que se encuentra en la parte superior del rbol: A.
Hojas son todos los nodos que no tienen hijos. En la representacin del ejemplo 1
son hojas los nodos situados en la parte inferior: D, G, H y F.
Nodos Interiores son los nodos que no son ni el nodo raz, ni nodos hoja. En el
ejemplo 1, son nodos interiores B, C y E.
Camino es una secuencia de nodos, en el que dos nodos consecutivos cualesquiera
son padre e hijo. En el ejemplo 1 A-B-D es un camino, al igual que E-G y C-E-H.
Rama es un camino desde el nodo raz a una hoja. En el ejemplo 1, A-C-E-G y AC-F
son ramas.
Altura es el mximo nmero de nodos de las ramas del rbol. Dicho en otros
trminos, el mximo nmero de nodos que hay que recorrer para llegar de la raz a una
de las hojas. La altura del rbol del ejemplo 1 es 4, ya que esa es la longitud de la rama
A-C-E-H, que junto a A-C-E-G son las dos ms largas.
Grado es el nmero mximo de hijos que tienen los nodos del rbol. As, en el
ejemplo anterior el rbol es de grado dos. Dmonos cuenta de que una lista no es ms
que un rbol de grado uno, tal y como podemos ver en los ejemplos 2 y 3.
Nivel de un nodo, es el nmero de nodos del camino desde la raz hasta dicho nodo.
En el rbol del ejemplo 1, A tiene nivel 1; B y C tienen nivel 2; D, E y F tienen nivel 3 y G
y H tienen nivel 4.
Existen algunos tipos especiales de rboles binarios en funcin de ciertas propiedades.
As por ejemplo:
rbol binario perfectamente equilibrado: Si para cada nodo el nmero de nodos en el
subrbol izquierdo y el nmero de nodos en el subrbol derecho, difiere como mucho
en una unidad. Hay que tener en cuenta todos los nodos del rbol.
Ing. Ramiro Mora Jimnez

UNIVERSIDAD ANDINA DEL CUSCO


FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS
ALGORITMICA Y LABORATORIO DE PROGRAMACIN II 2016-I

rbol equilibrado

rbol no equilibrado
Figura 3. rboles equilibrados

rbol binario completo: Se define un rbol binario completo como un rbol en el que
todos sus nodos, excepto los de ltimo nivel, tienen dos hijos; el subrbol izquierdo y
el subrbol derecho.

rbol binario incompleto

rbol binario completo

Figura 4. rboles completos

Recorrido de un rbol binario


Recorrer un rbol consiste en acceder una sola vez a todos sus nodos. Esta operacin
es bsica en el tratamiento de rboles y nos permite, por ejemplo, imprimir toda la
informacin almacenada en el rbol, o bien eliminar toda esta informacin o, si
tenemos un rbol con tipo base numrica, sumar todos los valores...
En el caso de los rboles binarios, el recorrido de sus distintos nodos se debe realizar
en tres pasos:

Ing. Ramiro Mora Jimnez

UNIVERSIDAD ANDINA DEL CUSCO


FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS
ALGORITMICA Y LABORATORIO DE PROGRAMACIN II 2016-I
acceder a la informacin de un nodo dado,
acceder a la informacin del subrbol izquierdo de dicho nodo,
acceder a la informacin del subrbol derecho de dicho nodo.
Imponiendo la restriccin de que el subrbol izquierdo se recorre siempre antes que el
derecho, esta forma de proceder da lugar a tres tipos de recorrido, que se diferencian
por el orden en el que se realizan estos tres pasos. As distinguimos:
Preorden: primero se accede a la informacin del nodo, despus al subrbol
izquierdo y despus al derecho.

Inorden: primero se accede a la informacin del subrbol izquierdo, despus se


accede a la informacin del nodo y, por ltimo, se accede a la informacin del subrbol
derecho.

Postorden: primero se accede a la informacin del subrbol izquierdo, despus a la


del subrbol derecho y, por ltimo, se accede a la informacin del nodo.

Si el nodo del que hablamos es la raz del rbol, estaremos recorriendo todos sus
nodos. Debemos darnos cuenta de que esta definicin del recorrido es claramente
recursiva, ya que el recorrido de un rbol se basa en el recorrido de sus subrboles
Ing. Ramiro Mora Jimnez

UNIVERSIDAD ANDINA DEL CUSCO


FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS
ALGORITMICA Y LABORATORIO DE PROGRAMACIN II 2016-I
izquierdo y derecho usando el mismo mtodo. Aunque podramos plantear una
implementacin iterativa de los algoritmos de recorrido, el uso de la recursin
simplifica enormemente esta operacin.
Estructura de un rbol binario
Un rbol binario se construye con nodos. Cada nodo debe contener el campo dato
(datos a almacenar) y dos campos de enlace (apuntador), uno al subrbol izquierdo
(izquierdo, izq) y otro al subrbol derecho (derecho, der). El valor null indica un rbol o
un subrbol vaco.
class Nodo
{
public int info;
public Nodo izq, der;
}

Figura 5. Nodo rbol


La Figura 5 muestra la representacin enlazada de dos rboles binarios de raz A. El
primero es un rbol degenerado a la izquierda; el segundo es un rbol binario
completo de profundidad 4.

Figura 6. Representacin enlazada de dos rboles binarios

Ing. Ramiro Mora Jimnez

UNIVERSIDAD ANDINA DEL CUSCO


FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS
ALGORITMICA Y LABORATORIO DE PROGRAMACIN II 2016-I
TAD rbol Binario (ArbolB)
La estructura de rbol binario constituye un tipo abstracto de datos; las operaciones
funcionales para un rbol Binario General que definen el TAD rbol binario son las
siguientes:
Tipo de dato Dato que se almacena en los nodos del rbol.
Operaciones
CrearArbol
Crear un nuevo rbol Binario, inicia el rbol como vaco.
Construir
Insertar nuevos datos en un rbol Binario, crea un rbol con un
elemento raz y dos ramas izquierda y derecha.
Borrar
Elimina del rbol el nodo con un elemento determinado.
Buscar
Determina si un elemento se encuentra en el rbol.
Editar
Editar objetos existentes dentro del rbol Binario.
Recorrer
Recorrer un rbol Binario en Preorde, en Inorden y en PostOrden.
Otras operaciones son:
RecorreN
Recorrer un rbol Binario por niveles.
EsVacio
Comprueba si el rbol no tiene nodos.
Raiz
Devuelve el nodo raz.
Izquierdo
Obtiene la rama o subrbol izquierdo de un rbol dado.
Derecho
Obtiene la rama o subrbol derecho de un rbol dado.
Peso
Conocer el peso de un rbol Binario.
Altura
Consultar la altura de un rbol Binario.
Hoja
Consultar si un Nodo es o no una hoja del rbol Binario.
Trabajo de Laboratorio
Implementar los mtodos para la construccin, bsqueda, recorridos y ELIMINACION
de un AB.

Ing. Ramiro Mora Jimnez

Вам также может понравиться