Vous êtes sur la page 1sur 24

rbol Binario

M. En C. Jos Asuncin Enrquez Zrate


asuncionez@gmail.com
2
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

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.
M.en C. Jos Asuncin Enrquez Zrate 2
3
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles Binarios
M.en C. Jos Asuncin Enrquez Zrate 3
! Un rbol binario no puede tener ms de dos
subrboles.
4
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles Binarios
M.en C. Jos Asuncin Enrquez Zrate 4
! Un rbol binario es una estructura recursiva.
! Cada nodo es la raz de su propio subrbol y
tiene hijos, que son races de rboles,
llamados subrboles derecho e izquierdo del
nodo, respectivamente.
5
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles Binarios
M.en C. Jos Asuncin Enrquez Zrate 5
! Un rbol binario se divide en tres subconjuntos
disjuntos:
Nodo Raz
Subrbol izquierdo de R.
Subrbol derecho de R.
rbol binario con
subrbol izquierdo
6
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles Binarios
M.en C. Jos Asuncin Enrquez Zrate 6
! En cualquier nivel n, un rbol binario puede contener de 1 a
2
n
nodos.
! El nmero de nodos por nivel contribuye a la densidad del
rbol.
" rboles binarios:
" El rbol A contiene 8 nodos en una profundidad de 4.
" El rbol de la b contiene 5 nodos y una profundidad 5.
7
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles Binarios
M.en C. Jos Asuncin Enrquez Zrate 7
! Equilibrio
! La distancia de un nodo a la raz determina la
eficiencia con la que puede ser localizado.
! Por ejemplo, dado cualquier nodo de un rbol, a sus
hijos se puede acceder siguiendo slo un camino de
bifurcacin o de ramas, el que conduce al nodo
deseado.
! De modo similar, a los nodos en el nivel 2 de un
rbol slo puede accederse siguiendo dos ramas del
rbol.
8
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles Binarios
M.en C. Jos Asuncin Enrquez Zrate 8
! Balance o Equilibrio.
! Para determinar si un rbol est equilibrado, se
calcula su factor de equilibrio.
! El factor de equilibrio de un rbol binario es la
diferencia en altura entre los subrboles derecho e
izquierdo.
! Si la altura del subrbol izquierdo es h
I
y la altura del
subrbol derecho h
D
, entonces:
! El factor de equilibrio del rbol B se determina por la
siguiente frmula: B = h
D
- h
I

9
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles Binarios
M.en C. Jos Asuncin Enrquez Zrate 9
! Balance o Equilibrio.
! Un rbol est perfectamente equilibrado si su
equilibrio o balance es cero y sus subrboles son
tambin perfectamente equilibrados.
! Dado que esta definicin ocurre raramente se aplica
una definicin alternativa:
! Un rbol binario est equilibrado si la altura de sus
subrboles difiere en no ms de uno y sus
subrboles son tambin equilibrados;
! Por consiguiente, el factor de equilibrio de cada
nodo puede tomar los valores -1, 0, +1.
10
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles binarios completos
M.en C. Jos Asuncin Enrquez Zrate 10
! Un rbol binario completo de profundidad n es un
rbol en el que para cada nivel, del 0 al nivel n-1,
tiene un conjunto lleno de nodos, y todos los
nodos hoja a nivel n ocupan las posiciones ms a
la izquierda del rbol.
! Un rbol binario completo que contiene 2
n
nodos a
nivel n es un rbol lleno.
! Un rbol lleno es un rbol binario que tiene el
mximo nmero de entradas para su altura.
11
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles binarios completos
M.en C. Jos Asuncin Enrquez Zrate 11
! Esto sucede cuando el ltimo nivel est lleno.
! rbol binario completo profundidad 4
12
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

rboles binarios completos
M.en C. Jos Asuncin Enrquez Zrate 12
! rbol degenerado, en el que hay un solo nodo hoja (E)
y cada nodo no hoja slo tiene un hijo.
! Un rbol degenerado es equivalente a una lista
enlazada.
13
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

TDA rbol binario

M.en C. Jos Asuncin Enrquez Zrate 13
Tipo de dato

Dato que se almacena en los nodos del rbol.

CrearArbol Inicia el rbol como vaco.
Construir Crea un rbol con un elemento raz y dos ramas,
izquierda y derecha que son a su vez rboles.
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.
Borrar Elimina del rbol el nodo con un elemento
determinado.
Pertenece Determina si un elemento se encuentra en el rbol.
14
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Operaciones en rboles binarios
! Operaciones tpicas que se realizan en rboles
binarios son las siguientes:
! Determinar su altura.
! Determinar su nmero de elementos.
! Hacer una copia.
! Visualizar el rbol binario en pantalla o en
impresora.
! Determinar si dos rboles binarios son idnticos.
! Borrar (eliminar el rbol).
! Si es un rbol de expresin, evaluar la expresin.
M.en C. Jos Asuncin Enrquez Zrate 14
15
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

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 y otro al subrbol
derecho.
! El valor null indica un rbol o un subrbol vaco.
M.en C. Jos Asuncin Enrquez Zrate 15
16
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Estructura De Un rbol Binario
M.en C. Jos Asuncin Enrquez Zrate 16
! Se puede observar que los nodos de un rbol
binario que son hojas se caracterizan por tener
sus dos campos de enlace a null.

rbol degenerado a la izquierda
rbol binario completo de profundidad 4.

!

17
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Representacin de un nodo
! La clase Nodo agrupa a todos los campos de que
consta: dato, izdo (rama izquierda) y dcho (rama
derecha).
! Adems, dispone de dos constructores; el primero
inicializa el campo dato a un valor y los enlaces a
null, en definitiva, se inicializa como hoja y el
segundo inicializa dato a un valor y las ramas a
dos subrboles.
M.en C. Jos Asuncin Enrquez Zrate 17
18
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Representacin de un nodo
M.en C. Jos Asuncin Enrquez Zrate 18
19
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Arbol Binario
M.en C. Jos Asuncin Enrquez Zrate 19
20
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Arbol Binario
M.en C. Jos Asuncin Enrquez Zrate 20
21
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Arbol Binario
M.en C. Jos Asuncin Enrquez Zrate 21
22
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Arbol Binario
M.en C. Jos Asuncin Enrquez Zrate 22
23
A
n

l
i
s
i
s


d
e

A
l
g
o
r
i
t
m
o
s

1
1
/
0
4
/
1
4

Arbol Binario
M.en C. Jos Asuncin Enrquez Zrate 23
rbol Binario

M. En C. Jos Asuncin Enrquez Zrate
asuncionez@gmail.com

Vous aimerez peut-être aussi