Anda di halaman 1dari 33

Estructuras de Datos No-Lineales

RBOLES
B

D E F

Maracay, Noviembre de 2015


INTRODUCCION
Las listas enlazadas son estructuras lineales
Son flexibles pero son secuenciales, un elemento
detrs de otro
Los rboles
Junto con los grafos son estructuras de datos no
lineales
Superan las desventajas de las listas
Sus elementos se pueden recorrer de distintas
formas, no necesariamente uno detrs de otro
Son muy tiles para la bsqueda y
recuperacin de informacin
A es Padre
B y C hijos de A:
hermanos
CONCEPTO B es Padre
D, E, F hijos de B
A
Estructura que organiza sus elementos
formando jerarquas: PADRES E HIJOS
Los elementos de un rbol se llaman nodos B C
Si un nodo p tiene un enlace con un nodo m,

p es el padre y m es el hijo D E F
Los hijos de un mismo padre se llaman:
hermanos
Un subrbol de un rbol B
Es cualquier nodo del rbol junto con todos sus
descendientes D E F
Todos los nodos tienen al menos un padre, menos la raz: A
Si no tienen hijos se llaman hoja: D, E, F y C
Definicin

Un rbol dirigido es una estructura:


Jerrquica porque los componentes estn a
distinto nivel.
Organizada porque importa la forma en que
est dispuesto el contenido.
Dinmica porque su forma, tamao y
contenido pueden variar durante la ejecucin.
Un rbol puede ser:
vaco,
Una raz + subrboles.
4
TERMINOLOGIA
Camino: Secuencia de nodos conectados dentro de un
arbol
Longitud del camino: es el numero de nodos menos 1 en
un camino
Altura del rbol: es el nivel mas alto del rbol
Un rbol con un solo nodo tiene altura 1
Nivel(profundidad) de un nodo: es el numero de nodos
entre el nodo y la raz.
Nivel de un rbol
Es el numero de nodos entre la raz y el nodo mas profundo del
rbol, la altura del un rbol entonces
Grado(aridad) de un nodo: es numero de hijos del nodo
Grado(aridad) de un rbol: mxima aridad de sus nodos
Conceptos Bsicos (cont.)
Raz es el nodo que no tiene ningn predecesor (sin
padre).
Hoja es el nodo que no tiene sucesores (sin hijos)
(Terminal). Los que tienen predecesor y sucesor se
llaman nodos interiores.
Rama es cualquier camino del rbol.
Bosque es un conjunto de rboles desconectados.
Nivel o profundidad de un nodo, es la longitud del
camino desde la raz hasta ese nodo.
El nivel puede de}irse como 0 para la raz y nivel
(predecesor)+1 para los dems nodos.
6
Conceptos Bsicos (cont.)
Los nodos de la misma generacin tienen el
mismo nivel.
Grado de un nodo, es el nmero de flechas
que salen de ese nodo (hijos). El nmero de
las que entran siempre es uno.
Grado de un rbol, es el mayor grado que
puede hallarse en sus nodos.
Longitud del camino entre 2 nodos: es el
nmero de arcos que hay entre ellos.

7
Representacin de un rbol.
Mediante diagramas de Venn
a
b c d
e

f
a

b c d

Mediante crculos y flechas


e f

Mediante parntesis anidados:


( a ( b (e,f), c, d ) )
8
Conceptos Bsicos (cont.)
Raz
hijo
Padre
Hermano Subrbol

hoja
Nivel de profundidad = 7
Grado de un nodo = 3 9

Grado del rbol = 3


Tipos de rboles
Un rbol ordenado: Es aquel en el que las
ramas de los nodos estn ordenadas.
Los de grado 2 se llaman rboles binarios.
Cada rbol binario tiene un subrbol
izquierda y subrbol derecha.
+

- ^

A B / 3.5
10
C D
Tipos de rboles (cont.)
rboles de expresin
Representan un orden de ejecucin
+
*
* +
+ -
A B * E

7 12 9
C D

(A* B) + C * D + E (7 + 12) * (-9) -171

11
Tipos de rboles (cont.)
rboles similares: Los que tienen la misma
estructura (forma)
a
1

b e
2 5
c d f g
3 4 6 7
h i
8 9

rboles Equivalentes: Son los rboles similares y


sus nodos contienen la misma informacin.
rboles n-ario: Es un rbol ordenado cuyos nodos
tiene N subrboles, y donde cualquier nmero de
subrboles puede ser rboles vacos 12
Tipos de rboles (cont.)
rbol binario completo:
Es un rbol en el que todos sus nodos, excepto
los del ultimo nivel, tienen dos hijos.

Nmero de nodos en un rbol binario completo


= 2h 1 (en el ejemplo h = 4, 15) esto nos
ayuda a calcular el nivel de rbol necesario 13

para almacenar los datos de una aplicacin.


rboles Binarios de Bsqueda (ABB)

14
rboles Binarios de Bsqueda
Un rbol es un ABB si
ste es binario y sus
nodos son subrboles
de bsqueda binarios y
contienen informacin
ordenada de tal que
todos los elementos a
la izquierda de la raz
son menores a la raz y
todos lo elementos a la
derecha de la raz son
mayores a la raz.
15
Caractersticas de un ABB
Todos los nodos a la izquierda son menores
al padre.
Todos los nodos a la derecha son mayores al
padre.
Y solo pueden tener 2 hijos a lo mucho.
50
40 90

26 45 110
85

8 34 42 68 88 100 110

95 105
16
102
Conversin de un rbol general en un
rbol binario
Los hermanos se enlazan en forma horizontal (lineal)
Se enlaza en forma vertical el padre con el hijo que
se encuentra mas a la izquierda y se elimina el
enlace de este padre con los dems hijos.
Se rota el diagrama resultante 45 grados hacia la
izquierda.

17
Conversin de un rbol general en un
rbol binario (cont.)
A A

B C D
B C D = E F G H I J K

E F G H I J K L M N O
A
L M N O
B
C que da as
E
L F G D
M H
I
N
J
O K 18
Representacin de un rbol binario en
la memoria.
Cada noto tiene la siguiente forma:

izq info der Raz

A D

B C E
19
Clase nodo de un ABB

Class Nodo{
nodo izq;
nodo der;
int dato;
}

20
Operaciones sobre un rbol
Recorrer rbol
Preorden
Inorden
Postorden
Insercin nodo
Eliminar nodo
Buscar nodo con informacin
Sumar los nodos
Calcular profundidad del rbol
Contar nodos
Contar hojas.

21
Recorridos de un rbol de Bsqueda
Binaria (ABB)
Recorrido en preorden (prefijo)
Visita la raz.
Recorre el subrbol izquierdo. RID
Recorre el subrbol derecho.
A

B C

Preorden = ABDGCEHIF
D E F

G H I 22
Recorridos de un rbol de Bsqueda
Binaria (ABB) (cont.)
Recorrido en inorden (infijo)
Recorre el subrbol izquierdo.
Visita la raz IRD
Recorre el subrbol derecho.
A

B C Inorden: D G B A H E I C F

D E F

G H I 23
Recorridos de un rbol de Bsqueda
Binaria (ABB) (cont.)
Recorrido en postorden (postfijo)
Recorre el subrbol izquierdo.
Recorre el subrbol derecho. IDR
Visita la raz.
A

B C Postorden : G D B H I E F C A

D E F

G H I 24
Insercin en un ABB
La insercin es una operacin que se puede
realizar eficientemente en un rbol binario de
bsqueda. La estructura crece conforme se
inserten elementos al rbol.
Los pasos que deben realizarse para insertar
un elemento a un ABB son los siguientes:
Debe compararse el valor o dato a insertar con la
raz del rbol. Si es mayor, debe avanzarse
hacia el subrbol derecho. Si es menor, debe
avanzarse hacia el subrbol izquierdo.
25
Insercin en un ABB (cont.)
Repetir sucesivamente el paso 1 hasta que se
cumpla alguna de las siguientes condiciones
El subrbol derecho es igual a vaci, o el
subrbol izquierdo es igual a vaci; en cuyo
caso se proceder a insertar el elemento en el
lugar que le corresponde.
El valor o dato que quiere insertarse es igual a
la raz del rbol; en cuyo caso no se realiza la
insercin.

26
Insercin en un ABB (cont.)
Supngase que quieren insertarse las
siguientes los siguientes datos en un rbol
binario de bsqueda que se encuentra vaci.

120 87 43 65 140 99 130 22 56

27
Insercin en un ABB (cont.) Solucin

120 87 43 65 140 99 130 22 56

120

87 140

43 65 130

I
99
22 56

28
Eliminar un nodo

Para eliminar un nodo existen los siguientes


casos:
1. Si el elemento a borrar es Terminal (hoja),
2. Si el elemento a borrar tiene un solo hijo,
3. Si el elemento a borrar tiene los dos hijo,

29
Eliminar un nodo (cont.)
Caso 1
Si el elemento a borrar es terminal (hoja),
simplemente se elimina.
aux = aux.izq = null
Ejemplo eliminar nodo 7

6 6 6

1 1 8 1
8 8

7 9 7 9 9
30
Eliminar un nodo (cont.)
Caso 2
Si el elemento a borrar tiene un solo hijo,
entonces tiene que sustituirlo por el hijo

Ejemplo: eliminar nodo 8


7 7 7

1 8 1 8 1 9

9 9 31
Eliminar un nodo (cont.)
Caso 3
Si el elemento a borrar tiene los dos hijos,
entonces se tienen que sustituir por el nodo que
se encuentra mas a la izquierda en el subrbol
derecho, o por el nodo que se encuentra mas a
la derecha en el subrbol izquierdo.
Ejemplo: eliminar el 6

6 7 7

1 1 8 1 8
8
7 9 9 32
7 9
Eliminar un nodo (cont.)
Elimina el 22,. 99, 87, 120, 140, 135, 56
93

87 120

43 99 140

22 65
130

56 135

33

Anda mungkin juga menyukai