Vous êtes sur la page 1sur 61

Estructura de Datos

Arboles

Tutor: Ing. Brbara Briceo

Las

datos lineales. A cada elemento le corresponda siempre un siguiente elemento. Los Arboles y Grafos son estructuras de datos no lineales puesto que pueden tener diferentes siguientes elementos, y tambin se conocen como estructuras multi - enlazadas

Introduccin estructuras array y listas son estructuras de

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Terminologa bsica
Un

rbol es un conjunto, de vrtices y arcos que satisfacen ciertos requerimientos. Un vrtice es un objeto simple (conocido tambin como nodo) que puede tener un nombre, adems de cierta informacin; un arco es la unin entre dos vrtices.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Terminologa bsica
Una

ruta, en un rbol, es una lista de diferentes vrtices en la que los vrtices consecutivos se conectan por medio de arcos dentro del rbol. Uno de los nodos del rbol se identifica como raz (root). exactamente una ruta entre la raz y un nodo.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Existe

Esta definicin bsica implica que Terminologa

en los arcos, normalmente pensamos en los arcos como cualquier punto ms all de la raz.
direcciones

no existen

Cada

nodo, excepto la raz, tiene exactamente un nodo arriba de l (padre) as, los nodos que se encuentran directamente abajo de algn nodo se denominan hijos.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Terminologa bsica
Los

nodos que no tienen hijos se conocen como hojas o nodos terminales. As, un nodo con al menos un hijo es un nodo no terminal.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Definicin recursiva
Base.

Un nodo sencillo n es un rbol (rbol trivial). Decimos que n es es la raz de ese rbol de un slo nodo. Sea v un nuevo nodo y sean T1, T2, ..., Tk uno o ms rboles con races c1, c2, ..., ck, respectivamente.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Induccin.

Definicin recursiva
Requerimos

que ningn nodo aparezca ms de una vez en los rboles Ti's; y por supuesto, v, siendo un "nuevo" nodo, no puede estar en ninguno de estos rboles.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Generamos

de la siguiente forma:

Definicin recursiva un nuevo rbol T de v y T1, T2, ..., Tk

a) b)

Hacemos v la raz de T Adicionamos un arco de v a cada c1, c2, ..., ck, haciendo a cada uno de estos ltimos un hijo de la raz v. Otra forma de ver este paso es que hemos hecho a v el padre de cada una de las races de los UNIVERSIDAD DEL CAUCA - PIS rboles T1, T2, ..., Tk. Ing. Miguel Angel Nio Zambrano
EDII

10

rboles ordenados, orientados y libres


Un

rbol es ordenado cuando el orden de los subrboles es importante; cuando no se considera un orden para los subrboles, el rbol es orientado. En este ltimo caso, si la direccin de los arcos se ignora, el rbol es libre.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

11

rboles ordenados, orientados y libres

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

12

Subrboles
En

un rbol T, un nodo n, junto con todos sus descendientes, es llamado un subrbol de T. El nodo n es la raz de este subrbol.
nodo es una raz de un subrbol formado por l y los nodos debajo de l.

Cada

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

13

Subrboles

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

14

Nivel, altura y longitud de ruta Los nodos en un rbol lo dividen

en niveles: el nivel de un nodo es el nmero de nodos en la ruta de ese nodo hasta la raz (sin incluirlo a l mismo). de un rbol es el nivel mximo entre todos los nodos del rbol.

La altura

La longitud de ruta

de un rbol es la suma de los niveles de todosUNIVERSIDAD los nodos en DEL CAUCA - PIS el Ing. Miguel Angel Nio Zambrano mismo EDII

15

rbol dirigido
Un

rbol es dirigido si cada nodo tiene una direccin hacia algn otro nodo sin contener ciclos. rbol es dirigido por la raz si existe un slo vrtice r llamado raz, con un grado de conectividad de entrada id(r) = 0 y para el resto de los vrtices v del rbol id(v) = 1.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Un

16

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

17

rbol binario
Un

rbol binario es un conjunto finito de elementos que, o est vaco, o est formado de tres partes: la primera parte consiste en un elemento denominado raz; las otras dos partes son, por s mismas, rboles binarios, denominados subrbol izquierdo y subrbol derecho.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

18

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

19

Estos

estar vacos. Cada elemento de un rbol binario se denomina nodo.


un rbol binario, generalmente se cumple que, para cada nodo: los hijos izquierdos de un nodo son menores a l y los hijos derechos de un nodo son mayores a l.

rbol binario subrboles pueden

En

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

20

rbol binario
Recursivamente

binario:

definimos

un

rbol

Base. El rbol vaco es un rbol binario


Induccin. Si r es un nodo, y T1 y T2 son rboles binarios, entonces, existe un rbol binario con raz r, un subrbol izquierdo T1 y un subrbol derecho T2.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

21

Propiedades
Existe

exactamente una ruta que une cualquier par de nodos en un rbol Un rbol con N nodos tiene N - 1 arcos Un rbol binario con N nodos internos tiene N + 1 nodos externos DEL CAUCA - PIS La longitud de rutaUNIVERSIDAD externa de Ing. Miguel Angel Nio Zambrano cualquier rbol binario con N nodosEDII internos es 2N veces ms grande

22

Definiciones
Cuando

un rbol binario tiene exactamente cero o dos subrboles es llamado rbol estrictamente binario, de otra forma, es un rbol de Knuth.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

23

Definiciones

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

24

Definiciones
Un

rbol binario estricto de altura d es balanceado cuando cada hoja en el rbol est en el nivel d o d - 1. rbol binario estricto de altura d es completamente balanceado si todas sus hojas o nodos terminales se encuentran en el nivel d.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Un

25

Definiciones

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

26

Definiciones

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

27

Bosques
Un

bosque es un conjunto de rboles disjuntos, y puede ser transformado en un rbol de Knuth con el algoritmo siguiente:

1. Ligar las races de los rboles del bosque y seleccionar a la raz del rbol a la izquierda como la raz del nuevo rbol
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

28

Bosques
2. Ligar a todos los hermanos de cada padre 3. Retirar todas las ligas de un padre a sus hijos excepto la del hijo de la izquierda

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

29

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

30

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

31

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

32

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

33

Operaciones en rboles binarios


INFO(p).

Regresa el contenido de n. LEFT(p). Regresa un apuntador al hijo izquierdo de n. RIGHT(p). Regresa un apuntador al hijo derecho de n. FATHER(p). Regresa un apuntador al padre de n. UNIVERSIDAD DEL CAUCA - PIS BROTHER(p). Regresa un apuntador Ing. Miguel Angel Nio Zambrano EDII al hermano de n.

34

Operaciones en rboles binarios


ISLEFT(p).

Regresa un valor verdadero (TRUE) si n es un hijo izquierdo. ISRIGHT(p). Regresa un valor verdadero (TRUE) si n es un hijo derecho. MAKETREE(x). Crea un nuevo rbol binario formado por un solo nodo con informacin x y regresa un apuntador a ese nodo.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

35

Operaciones en rboles binarios


SETLEFT(p,x).

Recibe un apuntador p a un nodo de un rbol binario que no tenga hijo izquierdo. Crea un nuevo hijo izquierdo a ese nodo con informacin x. SETRIGHT(p,x). Recibe un apuntador p a un nodo de un rbol binario que no tenga hijo derecho. Crea un nuevo hijo derecho a ese nodo con informacin x.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

36

Anexo A

Programa 54

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

37

Recorrido de rboles
Recorrer

un rbol es un mtodo de visitas de sus nodos con el objeto de sistematizar la recuperacin de la informacin almacenada en los mismos. recorridos pueden practicarse sistematizando la visita de los subrboles.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Los

38

Recorrido de rboles. Preorder


Funcin Preorder { Se visita el nodo Si el subrbol izquierdo existe y no se ha visitado: llamar a Preorder Si el subrbol derecho existe y no se ha visitado: llamar a Preorder Regresar }
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

39

Recorrido de rboles. Inorder


Funcin Inorder { Si el subrbol izquierdo existe y no se ha visitado: llamar a Inorder Se visita el nodo Si el subrbol derecho existe y no se ha visitado: llamar a Inorder Regresar }
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

40

Recorrido de rboles. Postorder


Funcin Postorder { Si el subrbol izquierdo existe y no se ha visitado: llamar a Postorder Si el subrbol derecho existe y no se ha visitado: llamar a Postorder Se visita el nodo Regresar }
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

41

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

42

Borrado de nodos
Para

borrar cualquier nodo de un rbol binario, se debe de colocar en su lugar el nodo que est ms a la izquierda del subrbol derecho o el nodo que est ms a la derecha del subrbol izquierdo.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

43

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

44

Balanceo de rboles
Cuando

un rbol se desbalancea es necesario realizar una serie de rotaciones que acomoden la nueva raz y se genere un rbol balanceado. es necesario saber cundo un rbol se ha desbalanceado. Para ello es necesario llevar una ponderacin en cada nodo a medida que se insertan UNIVERSIDAD DEL CAUCA - PIS nuevos elementos.
Ing. Miguel Angel Nio Zambrano EDII

Primero,

45

rbol balanceado

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

46

Balanceo de rboles
As,

si un nodo no tiene hijos o tiene ambos, su ponderacin ser de 0. Si tiene el hijo izquierdo, pero no el derecho, se le restar a su ponderacin un 1. Si tiene el hijo derecho, pero no el izquierdo, se le sumar a su ponderacin un 1. As, cuando un nodo tenga una ponderacin mayor a 1 o menor a -1, ese nodo se encuentra desbalanceado.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

47

Balanceo de rboles
Cuatro

rotaciones (depende del pivote)

Rotacin

sencilla izquierda Rotacin sencilla derecha Rotacin doble izquierda Rotacin doble derecha
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

48

Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

49

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

50

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

51

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

52

Anexo A

Ejemplo 1 (Balanceo) Programa 55-a Programa 55-b Programa 55-c

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

53

rboles binarios Entretejidos o Enhebrados


Dada

la importancia de los rboles ligados, conviene desarrollar algoritmos no recursivos para manipularlos y estudiar las exigencias de tiempo y espacio de dichos algoritmos. cambiar las ligas nil UNIVERSIDAD en ligas DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano especiales (entretejidas), es posible EDII realizar recorridos, inserciones y

Al

54

rboles Entretejidos
En

un rbol binario entretejido a la derecha, cada liga derecha nil se reemplaza por una liga especial con el sucesor del nodo bajo la transversal en orden, llamada entretejido derecho.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

55

rboles Entretejidos
Usando

este tipo de rbol nos ser fcil hacer una transversal en orden del mismo, pues lo nico que se requiere es seguir una liga o entretejido ordinario para hallar el siguiente nodo que se visitar.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

56

rboles Entretejidos
En

un rbol entretejido izquierdo se sustituye cada liga izquierda nil con una liga especial con el predecesor del nodo bajo la transversal en orden. se tienen ambos entretejidos, el resultado se conoce como rbol binario totalmente entretejido.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Si

57

rboles Entretejidos

Figura 33

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

58

rboles de Expresin
Un

rbol de expresin se construye a partir de los operandos y operadores simples de una expresin (aritmtica o lgica), colocando los operandos simples como las hojas de un rbol binario y los operadores como los nodos interiores.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

59

rboles de Expresin
En

cada operador binario, el subrbol izquierdo contiene todos los operandos y operadores simples en el operando izquierdo del operador dado, y el subrbol derecho contiene todo lo del operando derecho. En un operador unitario, un subrbol estar vaco.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

60

rboles de Expresin
Se

acostumbra escribir algunos operadores unitarios a la izquierda de sus operandos, como - (negacin unitaria) o bien las funciones estndar como log() y cos(). se escriben a la derecha, entre ellos la funcin factorial ( )!, o la que asume el cuadrado de un nmero: ( )2
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Otros

61

rboles de Expresin

Figura 34 Figura 35 Figura 36

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII

Vous aimerez peut-être aussi