arbol binario

12
ESTRUCTURAS DE DATOS 1 Clase: Árbol Binario

Upload: victor-mendoza

Post on 06-Jul-2015

149 views

Category:

Documents


0 download

TRANSCRIPT

ESTRUCTURAS DE DATOS 1Clase: rbol Binario

Arbol BinarioSe define como un conjunto de

cero o ms nodos tales que:

Existe un nodo llamado raz del rbol. Cada nodo puede tener 0,1, 2 subrboles conocidos como subrbol izquierdo y subrbol derecho.

Arbol Binario

Cada nodo del rbol binario contiene al menos los siguientes campos: Campo de datos que almacena el tipo de datos. Puntero al sub-rbol izquierdo. Puntero al sub-rbol derecho.

PropiedadesEl grado de un nodo es el nmero de hijos que tiene. El nivel de un nodo es el tamao del camino de la raz hasta este nodo. La altura de un nodo es el tamao del camino mas largo que vaya de este nodo a un nodo hoja, ms uno. La altura o profundidad de un rbol es la altura de la raz (o equivalentemente el mximo de las profundidades).

PropiedadesSi cada nodo que NO es una hoja tiene un subrbol izquierdo y un subrbol derecho, entonces se trata de un rbol binario completo. El nivel de un nodo es el nmero de aristas que se deben recorrer para llegar desde ese nodo al nodo raz. De manera que el nivel del nodo raz es 0, y el nivel de cualquier otro nodo es el nivel del padre ms uno

Arbol Binario

A

Nivel 0C B

Nivel 1G

D

E

F

Nivel 2K

H

Nivel 3

RecorridosSe llama recorrido de un rbol binario al proceso que permite acceder una sola vez a cada uno de los nodos del rbol. Cuando un rbol se recorre, el conjunto completo de nodos se examina. Los algoritmos de recorrido de un rbol realizan las siguientes tareas comunes: Procesar el nodo raz. Recorrer el subrbol izquierdo. Recorrer el subrbol derecho.

Recorridos

El orden en que se realizan estas acciones da nombre a los tres algoritmos ms usuales: pre-orden in-orden post-orden.

Aplicaciones

expresiones aritmticas procesos de decisin bsqueda

Arbol Binario

rbol binario asociado con una expresin aritmtica nodos internos: los operadores nodos externos: operandos Ejemplo: (2 * (a - 1) + (3 * b))

Ejercicios de rbolesImplemente un rbol binario que no contenga nmeros duplicados, permitir que reciba una lista de enteros por teclado y establezca el primer elemento como raz. Cada nmero sucesivo se comparara con la raz. Si es menor se examina el sub-rbol izquierdo y si es mayor el sub-rbol derecho. Cuando encuentre un sub-rbol vaco se coloca el nuevo elemento en el rbol. Imprimir la lista ingresada en Pre-Order, In-Order y Post-Order. Implemente un rbol ternario. Un rbol ternario es aquel cuyos nodos pueden tener hasta 3 (tres) hijos. Imprimir el rbol en Pre-Order, In-Order y Post-Order. Implemente un rbol binario donde cada nodo apunte a su padre (raz apunta a NULL) que provee las siguientes funciones: La cantidad de nodos del rbol. La suma de todos los nodos del rbol. La profundidad del rbol. Buscar un elemento en el rbol e imprimir el elemento, su padre y su abuelo. Avisar al usuario si no existe alguno de los elementos. Ej: Si es la raiz debe imprimir No tiene Padre No tiene Abuelo Buscar un elemento en el rbol e imprimir todo el camino desde el elemento hasta la raz. El numero total de nodos hojas. Dado un rbol binario escribir un programa que encuentre: El menor elemento. (1 punto) El mayor elemento. (1 punto)

Ejercicio

Realizar una funcin que dado un rbol binario construya un rbol espejo.