Académique Documents
Professionnel Documents
Culture Documents
Cursada 2011
Prof. Catalina Mostaccio Prof. Alejandra Schiavoni
Facultad de Informtica - UNLP
rboles Binarios
Agenda
Definicin Descripcin y terminologa Representaciones Recorridos Tiempo de ejecucin de los recorridos Aplicacin: Arboles de expresin
Algoritmos y Estructuras de Datos 3
Descripcin y terminologa
Cada nodo puede tener a lo sumo dos nodos hijos. Cuando un nodo no tiene ningn hijo se denomina hoja. Los nodos que tienen el mismo nodo padre se denominan hermanos.
Algoritmos y Estructuras de Datos 5
Descripcin y terminologa
Conceptos a usar:
Camino: desde n1 hasta nk, es una secuencia de nodos n1, n2, .,nk tal que ni es el padre de ni+1, para 1 i < k. La longitud del camino es el nmero de aristas, es decir k-1. Existe un camino de longitud cero desde cada nodo a s mismo. Existe un nico camino desde la raz a cada nodo. Profundidad: de ni es la longitud del nico camino desde la raz hasta ni. La raz tiene profundidad cero.
Descripcin y terminologa
Grado de ni es el nmero de hijos del nodo ni . Altura de ni es la longitud del camino ms largo desde ni hasta una hoja. Las hojas tienen altura cero. La altura de un rbol es la altura del nodo raz. Ancestro/Descendiente: si existe un camino desde n1 a n2, se dice que n1 es ancestro de n2 y n2 es descendiente de n1.
Descripcin y terminologa
rbol binario lleno: Dado un rbol binario T y altura h, diremos que T es lleno si cada nodo interno tiene grado 2 y todas las hojas estn en el mismo nivel (h). Es decir, recursivamente, T es lleno si : 1.- T es un nodo simple ( rbol binario lleno de altura 0), o 2.- T es de altura h y sus sub-rboles son llenos de altura h-1.
Algoritmos y Estructuras de Datos 8
Descripcin y terminologa
rbol binario completo: Dado un rbol binario T y altura h, diremos que T es completo si es lleno de altura h-1 y el nivel h se completa de izquierda a derecha. Cantidad de nodos en un rbol binario lleno: Sea T un rbol binario lleno de altura h, la cantidad de nodos N es (2 h+1 1) Cantidad de nodos en un rbol binario completo: Sea T un rbol binario completo de altura h, la cantidad de nodos N vara entre (2 h ) y (2 h+1 1)
Informacin propia del nodo Referencia a su hijo izquierdo Referencia a su hijo derecho
Arreglos Punteros
Algoritmos y Estructuras de Datos 10
Representacin
Hijo Izquierdo - Hijo Derecho
A
A
B
B C
C D E
11
Recorridos
Preorden
Inorden
Postorden
Por niveles
Se procesan los nodos teniendo en cuenta sus niveles, primero la raz, luego los hijos, los hijos de stos, etc.
12
13
n=1 n >1
14
h=0 h >0
15
rbol de Expresin
Es un rbol binario asociado a una expresin aritmtica
Nodos internos representan operadores Nodos externos operandos (hojas) representan
17
rbol de Expresin
Ejemplo: * e + a b c d
18
/ + f
rbol de Expresin
Recorriendo el rbol, obtenemos: Inorden: (((a + b) * (c d)) / (e + f)) Preorden: /*+ab-cd+ef Postorden: ab+cd-*ef+/
19
+ * 4 5
20
21
si es un operando
22
2+5*3+1
253*+1+
23
-Convertir una exp. infija en rbol de expresin : se debe convertir la exp. infija en postfija y a partir de sta, construir el rbol de expresin.
Estrategia del Algoritmo para convertir exp. infija en postfija : a) si es un operando se coloca en la salida. b) si es un operador se maneja una pila segn la prioridad de este operador en relacin al operador de la pila operador con >= prioridad se apila operador con < prioridad se desapila elemento colocndolo en la salida, hasta encontrar uno de menor prioridad (si se encuentra de = prioridad tambin se desapila), luego se apila el operador. c) cuando se llega al final de la expresin, se desapilan todos los elementos llevndolos a la salida, hasta que la pila quede vaca.
Algoritmos y Estructuras de Datos 24
Prioridad de los operadores de menor a mayor: +y-,*y/ Los ( siempre se apilan como si tuvieran la mayor prioridad y se desapilan slo cuando aparece un ) .
25
Algoritmo: tomar un carcter mientras ( existe carcter ) hacer si es un operando se coloca en la salida. si es un operador - ( se apila operador - ) se desapila elemento y se lleva a la salida hasta encontrar (, que se desapila pero no va a la salida. - + , * , - , / Si el operador es de mayor prioridad que el tope se apila si no se desapila elemento y se lleva a la salida hasta encontrar operador con menor y luego se apila el operador. (segn b) de la Estrategia) tomo otro carcter fin se desapilan los elementos y se llevan a la salida hasta que se vace la pila.
Algoritmos y Estructuras de Datos 26
Ejercitacin
rbol binario de expresin
Ejercicio 1. Dada la siguiente expresin postfija : I J K + + A B * C - * , dibuje su correspondiente rbol binario de expresin Convierta la expresin ((a + b) + c * (d + e) + f ) * (g + h) en expresin prefija Ejercicio 2. Dada la siguiente expresin prefija : * + I + J K - C * A B , dibuje su correspondiente rbol binario de expresin Convierta la expresin ((a + b) + c * (d + e) + f ) * (g + h) en expresin postfija
Algoritmos y Estructuras de de Datos Algoritmos y Estructuras Datos 27
rboles Generales
28
Agenda
Definicin Descripcin y terminologa Ejemplos Representaciones Recorridos Tiempo de ejecucin de los recorridos
Algoritmos y Estructuras de Datos 29
Definicin
Un rbol es una coleccin de nodos, tal que:
puede estar vaca. (rbol vaco) puede estar formada por un nodo distinguido R, llamado raz y un conjunto de rboles T1, T2, .Tk, k0 (subrboles), donde la raz de cada subrbol Ti est conectado a R por medio de una arista
30
Descripcin y terminologa
Grado del rbol es el grado del nodo con mayor grado. rbol lleno: Dado un rbol T de grado k y altura h, diremos que T es lleno si cada nodo interno tiene grado k y todas las hojas estn en el mismo nivel (h). Es decir, recursivamente, T es lleno si : 1.- T es un nodo simple ( rbol lleno de altura 0), o 2.- T es de altura h y todos sus sub-rboles son llenos de altura h-1.
Algoritmos y Estructuras de Datos 31
Descripcin y terminologa
rbol completo: Dado un rbol T de grado k y altura h, diremos que T es completo si es lleno de altura h-1 y el nivel h se completa de izquierda a derecha. Cantidad de nodos en un rbol lleno: Sea T un rbol lleno de grado k y altura h, la cantidad de nodos N es (k h+1 1) / (k-1)
32
Descripcin y terminologa
Cantidad de nodos en un rbol completo: Sea T un rbol completo de grado k y altura h, la cantidad de nodos N vara entre (k h +k -2) / (k-1) y (k h+1 1) / (k-1)
33
Ejemplos
Organigrama de una empresa rboles genealgicos Taxonoma que clasifica organismos Organizacin de un libro en captulos y secciones Sistemas de archivos
Algoritmos y Estructuras de Datos 34
35
Representaciones
Lista de hijos
Informacin propia del nodo Referencia al hijo ms izquierdo Referencia al hermano derecho
Algoritmos y Estructuras de Datos 36
Arreglos
Listas dinmicas
37
F G H
38
39
Recorridos
Preorden
Inorden
Se procesa el primer hijo, luego la raz y por ltimo los restantes hijos
Postorden
Por niveles
Se procesan los nodos teniendo en cuenta sus niveles, primero la raz, luego los hijos, los hijos de stos, etc.
40
41
42
43
n=1 n >1
h=0 h >0