Sie sind auf Seite 1von 0

RBOLES GENERALES (N-ARIOS)

Un rbol es un tipo especial de relacin que es muy til


para el estudio de una gran variedad de aplicaciones en las
ciencias de la computacin e ingeniera. Un rbol se
representa como un grafo dirigido o no dirigido. Los
rboles son muy usados en el estudio y construccin de
base de datos, modelamiento jerrquico de clases y en la
teora de lenguajes y construccin de compiladores, son
muy usados para describir los rboles sintcticos
correspondientes a gramticas de lenguajes.
RBOLES GENERALES (N-ARIOS)
Definicin
Un rbol A se define como un conjunto de elementos
llamados nodos o vrtices, de forma que!
" A es vaco, en cuyo caso se llama rbol vaco o rbol
nulo, o
" A contiene un nodo distinguido v
#
llamado ra$ de A y
los nodos restantes de A forman un conjunto de rboles
A
%
, A
&
, A
'
, ..., A
n
(ada rbol A
i
tiene como ra$ al nodo v
i
Un rbol se representa mediante un grafo en donde la ra$
v
#
es el nodo en A en la parte superior. Una lnea )acia
abajo de i$quierda a derec)a, un arco se*ala a los )ijos de
v
#

RBOLES GENERALES (N-ARIOS)
v
#
v
%
v
&
v
'
v
n
A
%
A
&
A
'
A
n
" A
%
, A
&
, A
'
, ..., A
n
son llamados subrboles de v
#
"

+i A
i
no es vaco, entonces su ra$ v
i
, es llamado )ijo de
v
#
, y v
#
es llamado padre de v
i

RBOLES GENERALES (N-ARIOS)
RBOLES LIBRES Y RBOLES CON RAIZ
Un rbol libre es un tipo especial de grafo no dirigido,
cualquiera de sus nodos puede ser considerado una ra$.
Un rbol con ra$ es un tipo especial de grafo dirigido. ,s
un rbol con nica ra$.
,jemplos de rboles libres!

RBOLES GENERALES (N-ARIOS)
,jemplos de rboles con ra$!

RBOLES GENERALES (N-ARIOS)
Definicin
+ea -! conjunto de vrtices o nodos
A! relacin! aristas o caminos entre los elementos de
-
.A, v
#
/ es un rbol si y solo si!
%. ,0iste un nico vrtice v
#
- tal que v
#
no tiene
ninguna entrada. v
#
es llamado ra$ del rbol A.
&. v - tal que v v
#
, v tiene solo una entrada.
RBOLES GENERALES (N-ARIOS)
+i .A, v
#
/ es un rbol
%. A es una relacin irrefle0iva .no e0isten ciclos/.
&. A es asimtrica, si u es padre de v, v no puede ser
padre de u.
'. +i a 1 b y b 1 c entonces a 1 c a,b,c -
1 no es transitiva. ,s decir si a es padre de b, y b es
padre de c, no es cierto que a es padre de c.
RBOLES GENERALES (N-ARIOS)
Definicin recursiva de r!"#
Un rbol A es un conjunto de nodos -, donde
+i - 2 vaco A es el rbol nulo
+i - vaco
,0iste v
#
- llamado ra$ de A
y e0isten A
%
, A
&
,..., A
n
,

con races v
%
, v
&
,..., v
n

respectivamente tal que e0iste una arista .v
#
, v
i
/ i
(ada A
i
es un subrbol del rbol A
%. Un vrtice es por si mismo un rbol, este nodo es la
ra$ de dic)o rbol.
&. La ra$ del rbol A
i
es v
i
v
i
es llamado )ijo de v
#

v
#
es llamado padre de v
i
RBOLES GENERALES
v
#
v
%
v
&
v
n
A
%
A
&
A
n
RBOLES GENERALES (N-ARIOS)
Nive#es $err%uic"s de un r!"#
(ada nodo de un rbol A tiene asignado un nmero de
nivel. La ra$ de A tiene asignado el nivel #. Los dems
nodos de A tienen asignado un nmero de nivel que es
mayor en % al nmero de nivel de su padre.
Los nodos del mismo nivel se dicen )ermanos.
&er'in"#"()a *unda'en+a#
+ea n
%
, n
&
,..., n
3
secuencia de vrtices o nodos tal que n
i
es
el padre de n
i4%
, para todo i de % a 3
" 5enominamos ra), al nico nodo que no tiene padre,
que corresponde al nodo de nivel #.
" 5enominamos -"$a .o +er'ina#/ a los nodos que no
tienen )ijos.
RBOLES GENERALES (N-ARIOS)
" La secuencia de nodos .n
%
, n
&
,..., n
3
/ se denomina
camino del nodo n
%
, al nodo n
3
" La #"n(i+ud de ca'in" es el nmero de nodos de la
secuencia menos uno. La longitud de camino est
determinado por el nmero de aristas del camino, no por
el nmero de nodos del camino. As el camino .a,b,c/ es
de longitud &, el camino .a, b/ es de longitud %, el camino
.a/ es de longitud #.
" ,l camino de un nodo )acia si mismo es de longitud #.
" +i e0iste un camino del nodo a )acia el nodo b, se dice
que a es an+eces"r de b y b es suces"r o descendiente de
a.
RBOLES GENERALES (N-ARIOS)
" Un antecesor o un descendiente de un nodo que no sea
el mismo, recibe el nombre de an+eces"r .r".i" o
descendien+e .r".i" respectivamente. La ra$ de un rbol
es el nico nodo que no tiene antecesores propios. Un
nodo sin descendientes propios se denomina )oja.
" La a#+ura o .r"fundidad de un rbol, es la longitud de
camino ms largo de ese nodo a una )oja. La altura del
rbol es la altura de la ra$ a ese nodo.
RBOLES GENERALES (N-ARIOS)
O+r"s +/r'in"s
" ,l '"'en+" o +a'a0" de un rbol, es el nmero de
nodos que contiene el rbol.
" ,l .es" es el nmero de )ojas del rbol.
" Llamamos (rad" de un n"d" al nmero de )ijos del
nodo. 6odemos decir entonces que las )ojas son los nodos
de grado #. 7odos los nodos tiene )ijos a e0cepcin de las
)ojas. 7odos los nodos tienen padre a e0cepcin de la
ra$.
RBOLES GENERALES (N-ARIOS)
E$e'.#"1 (onsidere el rbol A siguiente!
%
& ' 8
9 : ; <
%& %'
%; %<
%8
= %# %%
%9
%=
%:
>ivel #
>ivel %
>ivel &
>ivel '
>ivel 8
RBOLES GENERALES (N-ARIOS)
1a$! %
?omento! %=
6eso! %#
Altura! 8
@rado.'/! &
@rado.8/! '
5escendientes de <! <, %', %8, %; y %<
5escendientes propios de <! %', %8, %; y %<
Antecesores de <! %, ' y <
Antecesores propios de <! % y '

RBOLES GENERALES (N-ARIOS)
E$e'.#"1 +ea el rbol de vrtices - y altura )
5efinimos ).u/ la altura del subrbol con ra$ u
+i - 2 ) 2 "%
- 2 AaB - 2 Aa, bB -2 Aa, b, c, d, eB
) 2 # ) 2 % ) 2 &

a a
b
a
b c
d e
).a/ 2 ) 2 &
).b/ 2 ).c/ 2%
).d/ 2 ).e/ 2 #
).b/ 2 #
).a/ 2 ) 2 %
RBOLES GENERALES (N-ARIOS)
&EORE2A
+ea A un grafo con n vrtices
Las siguientes afirmaciones son equivalentes
%. A es un rbol
&. A es cone0a y acclica
'. A es cone0a y tiene n"% aristas
8. A es acclica y tiene n"% aristas
&EORE2A
+i a, b son vrtices distintos de un rbol A, entonces
e0iste un nico camino que conecta estos vrtices.
+e puede demostrar que como A es cone0o, e0iste al
menos un camino de a )acia b. +i )ubiera ms caminos de
este tipo, por medio de dos de ellos, algunas aristas
podran tener ciclos, pero sabemos que un rbol no tiene
ciclos.
RBOLES GENERALES (N-ARIOS)
3RI2I&I4AS DE ACCESO
a) 5I6O72AS7IZ8(n)1 devuelve el nodo )ijo ms a la
i$quierda del nodo n en el rbol. 5evuelve >ulo si n es una
)oja y, por tanto no tiene )ijos.
!) 5ER2ANO7DER(n)1 devuelve el )ermano a la
derec)a, el cual se define como el nodo m que tiene el
mismo padre p que n, de forma que m esta inmediatamente
a la derec)a de n en el ordenamiento de los )ijos de p.
c) 4ALOR(n)1 devuelve el campo valor del nodo n en el
rbol.
d) RAIZ1 devuelve el nodo ra$ del rbol o >ulo si el rbol
es nulo.
e) INI&7ARBOL1 6ermite iniciali$ar el rbol como rbol
nulo.
RE3RESEN&ACI9N EN 2E2ORIA DE RBOLES
GENERALES
Re.resen+acin 'edian+e arre(#"s
(uando se tiene los nodos etiquetados con enteros, es posible usar
una representacin mediante un arreglo unidimensional A, en
donde el ndice i representa el valor del nodo i, y A.i/ representa el
valor del padre de i.
# % % & & : : : ' '
% & ' 8 : 9 ; < = %#
%
& '
8 :
9
= %#
; <
A.C/ contiene el padre del
nodo i
A.8/ 2 & es el padre
del nodo 8
RE3RESEN&ACI9N EN 2E2ORIA DE RBOLES
GENERALES
Re.resen+acin 'edian+e #is+a de -i$"s
(uando los nodos estn etiquetados con mayor
informacin, es conveniente utili$ar una estructura de
listas, en donde cada nodo es una estructura de la forma
1egistro >odo
Cnicio
7 -alor
>odo Dsig
Ein1egistro
,ste modelo presenta la restriccin que el nmero de
nodos est limitado al tama*o del vector.
RE3RESEN&ACI9N EN 2E2ORIA DE RBOLES
GENERALES
Re.resen+acin 'edian+e #is+a de -i$"s
RA:Z es un arreglo de tama*o n .tama*o de -/
RA:Z(i) es la cabe$a de la lista que contiene los )ijos del nodo i.

%
&
'
8 D
:
9 D
; D
< D
= D
%# D
& ' D
8 : D
=
9 ; < D
%# D
RA:Z
Lis+a de -i$"s
%
& '
8
:
9
=
%#
; <
RE3RESEN&ACI9N EN 2E2ORIA DE
RBOLES GENERALES
Accin Rec"rrid"(N)
Cnicio
6ara C desde % )asta >
p 2 1a$.C/
?ientras p >ulo
,scribir p -alor
p p sig
Ein?ientras
Ein6ara
Ein
RE3RESEN&ACI9N EN 2E2ORIA DE
RBOLES GENERALES
1a$.i/ es la cabe$a de la lista de los )ijos del nodo i
i 1a$.i/ Fijos del nodo i
% 1a$.%/ &, '
& 1a$.&/ 8, :
' 1a$.'/ =, %#
8 1a$.8/ 2 >ulo >o tiene
: 1a$.:/ 9, ;, <
9 1a$.9/ 2 >ulo >o tiene
; 1a$.;/ 2 >ulo >o tiene
< 1a$.</ 2 >ulo >o tiene
= 1a$.=/ 2 >ulo >o tiene
%# 1a$.%#/ 2 >ulo >o tiene
RE3RESEN&ACI9N EN 2E2ORIA DE
RBOLES GENERALES
La accin recorre todo el vector 1AGH, aunque alguna ra$ sea
nula, por tanto no tiene )ijos. ,ste recorrido resulta innecesario, y
se puede solucionar )aciendo que el vector 1a$ sea una lista
enla$ada que contenga un nodo por cada nodo del rbol que no es
)oja
%
&
'
:
& ' D
8 : D
= %# D
9 ; < D
RA:Z Lis+a de -i$"s
RE3RESEN&ACI9N EN 2E2ORIA DE
RBOLES GENERALES
3un+er" a# -i$" de 's a #a i,%uierda;-er'an"
derec-" (5I-5D)
Los nodos tienen dos apuntadores uno al )ijo de ms a
la i$quierda y el otro al )ermano derec)o.
6untero al )ermano derec)o
6untero al )ijo ms a la i$quierda
-alor del nodo
RE3RESEN&ACI9N EN 2E2ORIA DE
RBOLES GENERALES
E$e'.#"1 ,l rbol de la figura .a/ puede representarse
mediante el modelo FC"F5 mostrado en la figura .b/
.a/ .b/
RE3RESEN&ACI9N EN 2E2ORIA DE RBOLES
GENERALES
Re.resen+acin 'edian+e curs"res -i$" 's a #a i,%uierda-
-er'an" derec-"
La variable CABEZA apunta a la direccin de la ra$ del rbol
.4ALOR(i)/<
5I6O(i) apunta a la posicin .>I5I.FCJI.i// donde se encuentra
la direccin del )ijo de ms a la i$quierda.
SIG(i) apunta a la posicin .>I5I.i// donde se encuentra la
direccin del )ermano derec)o.

A
K (
@ , E 5
RE3RESEN&ACI9N EN 2E2ORIA DE RBOLES
GENERALES
Re.resen+acin 'edian+e curs"res -i$" 's a #a i,%uierda--er'an"
derec-"
% E D %
& & ; :
' K & '
8 , D 8
: A 9 : 8 <
9 @ D 9 ' ;
; 5 D ; < D
< ( = < % D
= = 9 D
:
-ALI1 FCJI >I5I +C@
(AK,HA
2edian+e -i$" 's a #a i,%uierda--er'an" derec-"
1ACH variable global apunta a la ra$ del rbol
-ALI1.i/ contiene el valor del nodo con direccin i
FC.i/ contiene la direccin del )ijo ms a la i$quierda del nodo i
F5.i/ contiene la direccin del )ermano derec)o del nodo i
% # E #
&
' ; K <
8 # , %
: ' A #
9 # @ #
; # 5 8
< 9 ( #
=
:
1ACH
FC -ALI1 F5
A
K (
@ , E 5
RECORRIDO DE RBOLES GENERALES
(onsidrese el rbol con 1a$ y los subrboles A
%
, A
&
, A
'
, ..., A
n
ORDEN 3RE4IO
1a$
Los nodos de A
%
en orden previo
Los nodos de A
&
en orden previo
............................
Los nodos de A
n
en orden previo
ORDEN SI2=&RICO
Los nodos de A
%
en orden simtrico
1a$
Los nodos de A
&
en orden simtrico
Los nodos de A
'
en orden simtrico
................................
Los nodos de A
n
en orden simtrico
RECORRIDO DE RBOLES GENERALES
ORDEN 3OS&ERIOR
Los nodos de A
%
en orden posterior
Los nodos de A
&
en orden posterior
............................
Los nodos de A
n
en orden posterior
1a$
ALGORI&2OS REC>RSI4OS 3ARA EL RECORRIDO DE >N
ARBOL GENERAL
Los algoritmos son abstractos, depender de la estructura de datos en la
que se implementen
Accin ORDEN73RE4IO(n)
Cnicio
Listar n
6ara cada )ijo ) de n de i$quierda a derec)a
I15,>L61,-CI.)/
Ein6ara
Ein
RECORRIDO DE RBOLES GENERALES
Accin ORDEN7SI2=&RICO(n)
Cnicio
+i n es )oja
Listar n
+ino
) FCJIL?A+LCHM.n/
I15,>L+C?N71C(I.)/
Listar n
6ara cada )ijo ) de n e0cepto el de ms a la i$quierda
I15,>L+C?N71C(I.)/
Ein6ara
Ein+i
Ein
RECORRIDO DE RBOLES GENERALES
Accin ORDEN73OS&ERIOR(n)
Cnicio
6ara cada )ijo ) de n
I15,>L6I+7,1CI1.)/
Ein6ara
Listar n
Ein
RECORRIDO DE RBOLES GENERALES
A
K ( 5
E , @ F C
I > ? L O J
Irden previo! A, K, ,, J, O, L, E, (, @, ?, 5, F, C, >, I
Irden simtrico! J, ,, O, L, K, E, A, ?, @, (, F, 5, >, C, I
Irden posterior! J, O, L, ,, E, K, ?, @, (, F, >, I, C, 5, A
RBOL 2>L&ILENLACE
r!"# de en#ace +ri.#e
Los nodos tienen tres apuntadores, uno )acia el )ijo de ms a la
i$quierda, el segundo apunta al nodo padre, y el tercero apunta al
)ermano derec)o.
,sta representacin presenta una ventaja para volver al nivel superior.
RBOL 2>L&ILENLACE
r!"# c"n en#ace en ani##"
1esulta conveniente utili$ar listas circulares que cierren cadenas de rboles
multienlace. (ada nodo tiene un puntero al )ijo de ms a la i$quierda, uno al
)ermano derec)o y otro al padre! ,n el ltimo de los )ijos se reempla$a el
puntero nulo por un puntero al primero de los )ermanos, conformando una
lista circular de )ermanos, facilitando el acceso a cualquiera de ellos.
RBOLES SI2ILARES
RBOLES SI2ILARES
+ean A
%
y A
&
dos rboles
A
%
y A
&
se llaman rboles similares si tienen la misma estructura
.misma forma/.
A
%
y A
&
se llaman rboles copias, si son similares y tienen los
mismos contenidos en sus respectivos nodos.
A
K
( 5
A
K
( 5
,
E
@ F
E
@ F
,
.a/ .b/ .c/
.d/
Los rboles de las figuras .a/, .c/ y .d/ son similares.
Los rboles de las figuras .a/ y .c/ son rboles copias.
,l rbol .b/ no es similar ni copia de .d/
RBOLES BALANCEADOS
r!"# !a#ancead"
7odos los nodos que no son )ojas tienen el mismo nmero de ramas.
Un rbol balanceado se construye desde la ra$, descendiendo )acia
los niveles inferiores. (ada nivel se completa de i$quierda a
derec)a, de modo que todos los niveles e0cepto el ltimo deben
estar completos. ,jemplo! Los siguientes son rboles balanceados
Los siguientes son rboles desbalanceados.
RBOL BINARIO AB
Un rbol binario es un tipo especial de rbol en el que todo nodo del
rbol tiene a lo ms dos )ijos. +on muy utili$ados para reali$ar
bsquedas y ordenamientos. 7ambin son utili$ados para representar
e0presiones aritmticas.
Definicin
Un rbol binario AK se define como un conjunto de elementos llamados
nodos o vrtices, de forma que!
" A es vaco, en cuyo caso se llama rbol vaco o rbol nulo, o
" A contiene un nodo distinguido v
#
llamado ra$ de A y los nodos
restantes de A forman un par de conjuntos ordenados de rboles A
%
y A
&

A
%
es llamado subrbol i$quierdo y A
&
es llamado subrbol derec)o.
RBOL BINARIO AB


Definicin
+e define un rbol binario como
" Un rbol vaco
" (ada nodo no tiene )ijos, o
" tiene un )ijo i$quierdo
" tiene un )ijo derec)o
" tiene un )ijo i$quierdo y un )ijo derec)o

A
%
A
&
v
#
RBOL BINARIO AB

K

5
E @
A
,
(
A
K (
,
@
5
E
@rficamente podemos definir un conjunto como
RBOL BINARIO
Carac+er)s+icas de r!"#es !inari"s
%. ,l nmero m0imo de nodos en un rbol binario ) es
&
)4%
"%
&. Un rbol con n nodos internos tiene n4% nodos e0ternos
.)ojas/.
'. La altura de un rbol binario lleno con n nodos internos
es apro0imadamente log
&
n.
RBOL BINARIO
2"de#" ?1 2edian+e a.un+ad"res a #"s -i$"s
(ada nodo consiste de un registro!
1egistro >odo
Cnicio
7 -alor
>odo DFC PP apuntador al )ijo i$quierdo
>odo DF5 PP apuntador al )ijo derec)o
Ein1egistro
A
5 ,
K (
A
K (
5 ,
RBOL BINARIO
2"de#" @1 2edian+e arre(#"s .ara#e#"s (curs"res)
Ra),1 apunta al ndice de la entrada que contiene el valor de la ra$ del
rbol.
Dis.1 apunta al ndice de la primera entrada disponible en el vector.
A
K (
5 ,
-ALI1 FC F5
1a$ , # #
K ; %
5isp A & 9
( # #
5 # #
RBOLES ES&RIC&A2EN&E BINARIOS
Definicin
+ea .A, v
#
/ rbol binario con ra$ v
#
A es un r!"# es+ric+a'en+e !inari", si cumple
v - +i v no es )oja entonces v tiene subrboles i$quierdo y derec)o
no vacos.
Un rbol estrictamente binario con n )ojas tiene &n"% nodos.
,l rbol de la Eigura .a/ no es estrictamente binario, mientras que el
rbol de la Eigura .b/ si lo es.
.a/ .b/
RBOLES CO23LE&OS Y RBOLES C>ASI
CO23LE&OS
.a/ .b/
Definicin
+ea .A, v
#
/ rbol binario con ra$ v
#

A es un r!"# c"'.#e+", si cumple
+i A es de altura ) entonces, v - +i v es )oja entonces v est en el
nivel ).
,s decir todas las )ojas deben estar en el nivel )..
,l rbol de la figura .a/ no es completo, mientras que el rbol de la figura .b/
si lo es.
a
a
RBOLES CO23LE&OS Y RBOLES C>ASI CO23LE&OS
Definicin
+ea .A, v
#
/ rbol binario con ra$ v
#
y profundidad )
A es un r!"# cuasi c"'.#e+", si cumple
%. v - +i v es )oja entonces v est en el nivel ) o nivel )"%.
&. v - +i v tiene un descendiente derec)o en el nivel ), entonces todos los
descendientes i$quierdos de v que sean )ojas tambin deben estar en el nivel )
b
d
f
,l rbol de la figura .a/ no es cuasi completo pues las )ojas estn el nivel %, & y
', por lo que no cumple la condicin %.
,l rbol de la figura .b/ no es cuasi completo pues aunque cumple la condicin
%, las )ojas estn en el nivel & y '. 6ero no cumple la condicin &, ya que el
nodo a tiene descendiente derec)o j en el nivel ', y un descendiente i$quierdo e
en el nivel &.
c
e
g
.a/
b c
d e f g
) i j 3
.b/
RBOLES CO23LE&OS Y RBOLES C>ASI CO23LE&OS
,l rbol de la figura .c/ es estrictamente binario y cumple ambas condiciones,
por tanto es cuasi completo.
,l rbol de la figura .d/ aunque no es estrictamente binario, cumple ambas
condiciones, por tanto es cuasi completo.
a
b c
d e f g
) i
.d/
a
b c
d e f g
) i
.c/
j
RBOLES CO23LE&OS Y RBOLES C>ASI
CO23LE&OS
Un rbol binario tiene en el nivel 3 a lo ms &
3
nodos.
+i el rbol A es completo, A es estrictamente binario, por
tanto el nivel 3 tendr e0actamente &
3
nodos.
As el nivel # tendr &
#
2 % nodos
el nivel % tendr &
%
2 & nodos
el nivel & tendr &
&
2 8 nodos
de esto se deduce que un rbol completo de profundidad )
tiene &
#
4 &
%
4 ..... &
)
nodos, esto equivale a
)
&
i
2 &
)4%
" %
i2#
,l rbol binario tiene &
)
nodos )ojas y &
)
"% nodos no
)ojas.
RE3RESEN&ACI9N DE >N RBOL
CO23LE&O O C>ASI CO23LE&O
Un rbol binario es cuasi completo, si y slo si todos sus
niveles e0cepto posiblemente el ltimo, tienen el m0imo
nmero de nodos posible y los nodos del ltimo nivel
estn lo ms a la i$quierda posible.
RE3RESEN&ACI9N DE >N RBOL CO23LE&O
O C>ASI CO23LE&O
+i enumeramos los nodos de un rbol binario completo o
cuasi completo con enteros %, &, ', ... 5e i$quierda a
derec)a y por niveles de arriba )acia abajo, se puede
implementar en un arreglo en donde el ndice representa
la etiqueta del nodo.
(on este etiquetado se puede determinar fcilmente
quienes son los )ijos o el padre de cada nodo 3.
RE3RESEN&ACI9N DE >N RBOL
CO23LE&O O C>ASI CO23LE&O
A
K (
5 , E @
F
A K ( 5 , E @ F
% & ' 8 : 9 ; <
Advirtase que el nodo con ndice 3,
7iene como )ijo i$quierdo al nodo con ndice &D3
7iene como )ijo derec)o al nodo con ndice &D34%
7iene como padre al nodo con ndice 3P&
RE3RESEN&ACI9N DE >N RBOL BINARIO
CO23LE&O O C>ASI CO23LE&O
Re.resen+acin secuencia#
+upongamos que A es un rbol binario completo o cuasi"
completo.
,l rbol A puede mantenerse en forma eficiente en un arreglo
A1KIL, en donde!
" La ra$ de A se guarda en A1KILQ%R
" +i un nodo > esta en la posicin A1KILQ3R, entonces
+u )ijo i$quierdo se encuentra en la posicin A1KILQ&D3R
+u )ijo derec)o se encuentra en la posicin A1KILQ&D34%R
" +i A1KILQ%R 2 >ulo el rbol esta vaco
RE3RESEN&ACI9N DE >N RBOL BINARIO
CO23LE&O O C>ASI CO23LE&O
E$e'.#"1
%:
%# &=
%& 8:
%: %# &= # %& # 8:
% & ' 8 : 9 ; <
,l rbol de la figura .a/ no es completo. +e necesitan siete espacios
para almacenar el rbol, aunque tenga cinco nodos. +i colocramos
nulo para cada )ijo i$quierdo e )ijo derec)o de los nodos )ojas, el
nodo ;, por ejemplo tendra a sus )ijos i$quierdo y derec)o en las
posiciones catorce y quince respectivamente. >ecesitaramos
quince nodos, lo que )ace que resulte ineficiente esta
representacin para rboles que no son completos.
.a/
RE3RESEN&ACI9N DE >N RBOL BINARIO
CO23LE&O O C>ASI CO23LE&O
E$e'.#"1
%:
%# &=
%&
%: %# &= < %& %;
% & ' 8 : 9 ; <
,l rbol de la figura .b/ es cuasi completo, necesita seis espacios,
igual al nmero de nodos.
.b/
%; <
RECORRIDO DE RBOLES BINARIOS
(onsidrese el rbol binario con RA:Z y los subrboles SAI y SAD
subrbol i$quierdo y subrbol derec)o respectivamente.
3RE-ORDEN
1a$
+ubrbol i$quierdo en pre"orden
+ubrbol derec)o en pre"orden
IN-ORDEN
+ubrbol i$quierdo en in"orden
1a$
+ubrbol derec)o en in"orden
3OS&-ORDEN
+ubrbol i$quierdo en post"orden
+ubrbol derec)o en post"orden
1a$
RA:Z
SAI SAD
RECORRIDO DE RBOLES BINARIOS
Accin 3RE-ORDEN(n) Accin 3OS&-ORDEN(n)
Cnicio Cnicio
Listar n 6I+7"I15,>.FC.n//
61,"I15,>.FC.n// 6I+7"I15,>.F5.n//
61,"I15,>.F5.n/ Listar n
Ein Ein
Accin IN-ORDEN(n)
Cnicio
C>"I15,>.FC.n//
Listar n
C>"I15,>.F5.n//
Ein
,
A
RECORRIDO DE RBOLES BINARIOS
(
E
K
5
F @
61, I15,>! A, K, 5, (, ,, @, F, E
C> I15,>! 5, K, A, @, ,, F, (, E
6I+7 I15,>! 5, K, @, F, ,, E, (, A
RECORRIDO DE RBOLES BINARIOS EN
*OR2A NO REC>RSI4A
RECORRIDO INORDEN
En+rada1 1a$ .ra$ del rbol/
Sa#ida1 recorrido inorden
3rec"ndicin1 ,l rbol e0iste y es binario
1a$ apunta a la ra$ del rbol
La pila 6 debe estar vaca
+e recorre el rbol, avan$ando )asta su )ijo de ms a la
i$quierda y en el camino se va empilando los nodos
padres. (uando se encuentra la )oja ms i$quierda, se
depila el padre, se lista su valor y se avan$a por la rama
derec)a. ,n el subrbol derec)o se aplica el mismo
proceso.
RECORRIDO DE RBOLES BINARIOS EN *OR2A
NO REC>RSI4A
Accin Rec"rrid"7In"rden (Ra),)
Cnicio
1 1a$
Cnit.6/
?ientras.1 >ulo -acia.6//
+i .1 >ulo/
,mpilar.6, 1/
1 1 FC
+ino
5epilar.6, 1/
,scribir 1 -alor
1 1 F5
Ein+i
Ein?ientras
Ein
RECORRIDO DE RBOLES BINARIOS EN
*OR2A NO REC>RSI4A
RECORRIDO 3REORDEN
En+rada1 1a$ .ra$ del rbol/
Sa#ida1 recorrido preorden
3rec"ndicin1 ,l rbol e0iste y es binario
1a$ apunta a la ra$ del rbol
La pila 6 debe estar vaca
+e recorre el rbol, avan$ando )asta su )ijo de ms a la
i$quierda y en el camino se va listando y empilando los
nodos padres. (uando se encuentra la )oja ms i$quierda,
se depila el padre y se avan$a por la rama derec)a. ,n el
subrbol derec)o se aplica el mismo proceso.
RECORRIDO DE RBOLES BINARIOS EN *OR2A
NO REC>RSI4A
Accin Rec"rrid"73re"rden (Ra),)
Cnicio
1 1a$
Cnit.6/
?ientras.1 >ulo -acia.6//
+i .1 >ulo/
,scribir 1 -alor
,mpilar.6, 1/
1 1 FC
+ino
5epilar.6, 1/
1 1 F5
Ein+i
Ein?ientras
Ein
RECORRIDO DE RBOLES BINARIOS EN *OR2A
NO REC>RSI4A
RECORRIDO 3OS&ORDEN
En+rada1 1a$ .ra$ del rbol/
Sa#ida1 recorrido postorden
3rec"ndicin1 ,l rbol e0iste y es binario
1a$ apunta a la ra$ del rbol
La pila 6 debe estar vaca, constituido por
dos campos! apuntador al nodo y un valor booleano indicando
si desciende de un subrbol i$quierdo o derec)o.
2/+"d"1
+e recorre el rbol, avan$ando )asta su )ijo de ms a la
i$quierda y en el camino se va empilando los nodos padres y su
valor booleano. (uando se encuentra la )oja ms i$quierda, se
depila el padreS si su valor booleano es derec)o se lista y se
pasa al nodo siguiente sobre la pilaS si su valor booleano es
i$quierdo se avan$a por la rama derec)a empilando los nodos
padres junto con su valor booleano.
RECORRIDO DE RBOLES BINARIOS EN *OR2A NO REC>RSI4A
Accin Rec"rrid"73"s+"rden (Ra),)
1 1a$
Cnit.6/
?ientras.1 >ulo -acia.6//
+i .1 >ulo/
,mpilar.6, .1, CHM//
1 1 FC
+ino
5epilar.6, .1, C>5C(A5I1//
+i .C>5C(A5I1 2 CHM/
,mpilar.6, .1, 5,1//
1 1 F5
+ino
,scribir 1 -alor
1 >ulo
Ein+i
Ein+i
Ein?ientras
RECORRIDO 3OR NI4ELES DE >N RBOL
BINARIO
,l recorrido por niveles o por anc)ura de un rbol binario
consiste en visitar primero la ra$, luego los nodos del nivel %,
despus los nodos del nivel &, etc., )asta visitar los nodos del
ltimo nivel. (ada nivel se visita de i$quierda a derec)a.
,
A
(
E
K
5
F @
1ecorrido! A, K, (, 5, ,, E, @, F
RBOL BINARIO EA&ENDIDO
Definicin
Un rbol binario A se llama rbol"& o arbol binario
e0tendido, si cumple que!
7odo vrtice tiene cero o dos )ijos
Los nodos con dos )ijos se denominan nodos internos.
Los nodos con cero )ijos se denominan nodos e0ternos u
)ojas
,n un rbol"&, los nodos internos se grafican mediante
crculos, y las )ojas mediante cuadrados.
Definicin
,n un rbol e0tendido, el nmero de nodos e0ternos es
igual al nmero de nodos internos mas uno.
N
E
B N
I
C ?
RBOL BINARIO EA&ENDIDO

Un rbol binario puede convertirse a rbol"& reempla$ando todo rbol
vaco por un nuevo nodo. Al e0tenderse un rbol binario, sus )ojas se
convierten en nodos internos, y los nodos a*adidos se convierten en
)ojas. Los rboles e0tendidos se usan para representar rboles de
e0presiones aritmticas.
Trbol binario Trbol e0tendido
RBOLES DE EA3RESIONES
Un rbol ordenado puede usarse para representar una e0presin
aritmtica. ,l recorrido inorden del rbol produce la e0presin
en notacin infija. 5e igual forma los recorridos preorden y
postorden producen la notacin prefija y postfija
respectivamente.
Un rbol de e0presin es un rbol binario que cumple!
Los nodos )ojas estn etiquetados con operandos
Los nodos no )ojas estn etiquetados con operadores
La sinta0is abstracta describe una e0presin construida
mediante la aplicacin de un operador binario O3 a dos
sube0presiones E
?
y E
@
RA:Z
E
?
E
@
RBOLES DE EA3RESIONES
+ea , una e0presin aritmtica
+i O3 2 4, entonces el valor de , es la suma de los
valores de E
?
y E
@
. +i O3 2 D entonces el valor de , es el
producto de los valores de E
?
y E
@
,jemplo!
D
: 4
< a
6re"orden D : 4 < a notacin prefija
Cn"orden : D < 4 a notacin infija
6ost"orden : < a 4 D notacin postfija
RBOLES DE EA3RESIONES
Aunque generalmente en una e0presin los operadores
son binarios. Un rbol de e0presin puede representar
tambin e0presiones de operadores no binarios
,jemplo!
D
+eno 4
a Log
Irden previo D +eno 4 a Log
Irden simtrico +eno D a 4 Log
Irden 6osterior +eno a Log 4 D

A3LICACI9N DE RBOLES BINARIOS1 E4AL>ACI9N DE


EA3RESIONES
Fasta a)ora todas las estructuras )an sido consideradas como
estructuras )omogneas, ya que todos los elementos son del mismo
tipo. Los rboles que contienen nodos de tipos diferentes se
denominan )eterogneos y un ejemplo de ellos son los rboles de
e0presin en los que los nodos contienen en su parte valor un
operador si son internos, y un operando si son e0ternos.
+e presenta a continuacin una aplicacin para evaluar una e0presin
en notacin postfija.
1egistro >odo
Kooleano 7ipo >odo PP 7ipo de >odo! operando u
Union PP operador
(arcter -alor(arcter
1eal -alor>umrico
EinUnion
>odo DFC
>odo DF5
Ein1egistro
>odo D1a$ PP ra$ del rbol
A3LICACI9N DE RBOLES BINARIOS1 E4AL>ACI9N DE
EA3RESIONES
Accin Eva#Da(Ra),)1 &i." Rea#
Cnicio
1eal operando%, operando&
(arcter operador
+i .1a$ 7ipo>odo 2 operando/
1etornar .1a$ -alor>umrico/
Ein+i
Iperando% ,vala.1a$ FC/
Iperando& ,vala.1a$ F5/
Iperador 1a$ -alor(arcter
,vala Iperacin.Iperador, Iperando%, Iperando&/
Ein
RBOLES DE EA3RESIONES
(onsidrese el siguiente fragmento en (
E-i#e (A FB aGIH)
I B I ; ?I
,l siguiente rbol muestra la sinta0is abstracta del fragmento. ,l
E-i#e para el ciclo U)ile, tiene dos )ijos, que corresponden a la
verificacin de la e0presin y al cuerpo del ciclo U)ile
respectivamente. Los otros operadores en el rbol son FB para
verificar la desigualdad, )ndice para la indicacin de arreglos,
asi(na para la asignacin y ; para la resta.
U)ile
V2 asigna
0 ndice C "
A C C %
CONS&R>CCI9N DE >N RBOL DE EA3RESI9N
(onsidrese una e0presin U en notacin postfija. 6resentamos un
algoritmo para construir un rbol de e0presin a partir de U
En+rada1 U e0presin postfija
Sa#ida1 A Trbol de e0presin
2/+"d"1
?ientras e0istan smbolos
%. Leer carcter ( leer e0presin postfija smbolo por smbolo
&. +i ( es operando (rear un rbol de un nodo
,mpilar en 6, un apuntador p al nodo
+ino .( es operador/ 5epilar los dos ltimos apuntadores
a rboles p
%
y p
&
,
(onstruimos un rbol con ra$ ( .el
operador/
y sus )ijos i$quierdo y derec)o que apuntan a
p
%
y p
&
respectivamente,
,mpilamos p, el apuntador al nuevo rbol
'. ,n la pila quedar finalmente un apuntador al rbol de e0presin
final.
CONS&R>CCI9N DE >N RBOL DE EA3RESI9N
Dec#aracin de un n"d" de un r!"# !inari"
1egistro >odo
Cnicio
7 -alor
>odo DFC PP apuntador al )ijo i$quierdo
>odo DF5 PP apuntador al )ijo derec)o
Ein1egistro
Accin C"ns+ruJe7r!"#7de7EK.resin(3)
Cnicio
Leer (
?ientras ( WXY PP WXY usado como centinela
+i ( es operando
p nuevo >odo
p -alor (
,mpilar.6, p/
+ino
5epilar.6, p
&
/
5epilar.6, p
%
/
p nuevo >odo
p -alor (
p FC p
%
p F5 p
&
,mpilar .6, p/
Ein+i
Leer (
Ein?ientras
Ein
RBOL BINARIO DE BLS8>EDA
Un rbol binario de bsqueda AKK .binary searc) tree/, tambin llamado
rbol binario ordenado, es aquel en el cual sus nodos estn etiquetados
con un valor de llave tomado de un conjunto ,, estos elementos pueden
ser complejos, pero por simplicidad supondremos que son enteros. ,n un
rbol de bsqueda se cumple que!
6ara todo nodo >!
Z
7odos los valores de los nodos del subrbol i$quierdo son menores
que el valor de llave de >.
Z
7odos los valores de los nodos del subrbol derec)o son mayores
que el valor de la llave de >.
,jemplo!
'
'<
%8 :'
;# 8= %=
RBOL BINARIO DE BLS8>EDA
,l rbol binario de bsqueda AKK permite buscar y encontrar un
elemento, tambin permite insertar y borrar elementos fcilmente.
,sta estructura contrasta con los arreglos y las listas!
Z
Arre(#" unidi'ensi"na#1 aqu se puede buscar y encontrar
fcilmente, pero es costoso insertar y eliminar, porque se tienen que
)acer despla$amientos a la i$quierda o a la derec)a del elemento a
eliminar o insertar.
Z
Lis+as en#a,adas1 aqu se puede insertar y eliminar fcilmente, pero
es costoso buscar y encontrar un elemento, ya que se debe usar una
bsqueda secuencial.
La definicin de rbol binario de bsqueda dada asume que todos los
valores de los nodos son distintos. ,0iste una definicin anloga de rbol
binario de bsqueda que permite duplicados, esto es, en la que cada nodo
> tiene la siguiente propiedad!
El valor de N es mayor que cualquier valor del subrbol izquierdo
de N y es menor o igual que cualquier valor del subrbol derecho de N
RBOL BINARIO DE BLS8>EDA
BDs%ueda de un e#e'en+"
+upongamos que buscamos el valor - en un rbol AKK con ra$ 1.
La accin Kuscar debe devolver la direccin p .apuntador/ al nodo
que contiene -, o nulo si no se encuentra.
+i el rbol esta vaco .si 1 2 >ulo/, se devuelve p 2 >ulo. +ino se
compara el valor del nodo actual con -, si son iguales se devuelve
en p la direccin del nodo. +i no es as )acemos una bsqueda bien
en el lado i$quierdo del nodo o bien en el lado derec)o del nodo
dependiendo de la relacin del valor del nodo con -.
(onsideremos un rbol cuyos nodos son registros tipo >odo
1egistro >odo
Cnicio
7 -alor
>odo DFC PP apuntador al )ijo i$quierdo
>odo DF5 PP apuntador al )ijo derec)o
Ein1egistro
RBOL BINARIO DE BLS8>EDA
,l siguiente algoritmo Kuscar utili$a las siguientes variables!
1a$ ! apuntador al nodo ra$ del rbol
-al! -alor a buscar
6os! apuntador al nodo que contiene -al o nulo si no
lo encuentra
6os6ad! apuntador al padre
(uando se busca -al en el rbol AKK se presentan cuatro casos!
(aso%! 6os 2 >ulo y 6os6ad 2 >ulo
Trbol >ulo
(aso&! 6os >ulo [ 6os6ad 2 nulo
-al se encuentra en el nodo ra$ del rbol
(aso'! 6os 2 >ulo y 6os6ad >ulo
-al no se encuentra, pero puede a*adirse al rbol como
)ijo de 6os6ad
(aso8! 6os >ulo y 6os6ad >ulo
-al se encuentra en un nodo que no es ra$ del rbol
Accin Buscar(Ra),M 4a#M 3"sM 3"s3ad)
Cnicio
+i .1a$ 2 >ulo/
6os >ulo
6os6ad >ulo
+ino
n 1a$
+i .n -alor 2 -al/
6os 1a$
6os6ad >ulo
+ino
+i .-al \ n -alor/
n n F5
+ino
n n FC
Ein+i
6adre 1a$
encontr falso
?ientras.n >ulo encontr/
+i .n -alor 2 -al/
6os n
6os6ad 6adre
encontr verdadero
+ino
6adre n
+i .-al ] n -alor/
n n FC
+ino
n n F5
Ein+i
Ein+i
Ein?ientras
+i . encontr/
6os >ulo
6os6ad 6adre
Ein+i
Ein+i
Ein
La bsqueda en el rbol AKK puede reali$arse en forma recursiva!
*uncin BusRec(RM 4a#)1 &i." 3
Cnicio
+i .1 2 >ulo/
Kuscar >ulo
+ino
+i.-al ] 1 -alor/
Kuscar Kus1ec.1 Fi, -al/
+ino
+i .-al \ 1 -alor/
Kuscar Kus1ec.1 F5, -al/
+ino
Kuscar 1
Ein+i
Ein+i
Ein+i
1etornar Kuscar
Ein
RBOL BINARIO DE BLS8>EDA
INSERCI9N DE >N ELE2EN&O
6ara insertar un elemento - en un rbol AKK, se procede
en forma similar a la bsqueda de un elemento. +i - se
encuentra, no se )ace nada. +i no es as, se inserta - en el
ltimo espacio del camino recorrido.
Accin Inser+ar(Ra),M 4a#)
Cnicio
6os >ulo
6os6ad >ulo
Kuscar.1a$, -al, 6os, 6os6ad/
+i .6os >ulo/
,scribir -al, ^ ya e0iste_
+ino
n nuevo >odo
n -alor -al
n FC >ulo
n F5 >ulo
+i .6os6ad 2 >ulo/
1ai$ n
+ino
+i .-al ] 6os6ad -alor/
6os6ad FC n
+ino
6os6ad F5 n
Ein+i
Ein+i
Ein+i
Ein
,jemplo!
%&
:
<
%<
&
;
+e
insert
=
%&
:
<
%<
&
; =
Accin Inser+arRec(RM 4a#) NN algoritmo recursivo de la insercin
Cnicio
+i .1 2 >ulo/
n nuevo nodo
n -alor -al
n FC >ulo
n F5 >ulo
1 n
+ino
+i .-al ] 1 -alor/
Cnsertar1ec .1 FC, -al/
+ino
+i .-al \ 1 -alor/
Cnsertar1ec.1 F5, -al/
+ino
,scribir -al, ^ ya e0iste_
Ein+i
Ein+i
Ein+i
Ein
RBOL BINARIO DE BLS8>EDA
ELI2INACI9N DE >N ELE2EN&O
(uando se quiere eliminar un elemento, se presentan tres
casos!
`
+i el nodo es )oja, se elimina de inmediato.
`
+i el nodo tiene un )ijo, el nodo se puede eliminar
)aciendo un ajuste en un apuntador del padre, para
saltar el nodo, modificando el apuntador del padre
para que apunte al nodo )ijo del nodo a eliminar.
`
,l caso complicado se da cuando el nodo a eliminar
tiene dos )ijos. ,n este caso, la estrategia consiste en
sustituir el nodo a eliminar por el nodo con el valor
ms peque*o del subrbol derec)o, y eliminar este
nodo.
RBOL BINARIO DE BLS8>EDA
Accin E#i'inar()
Cnicio
,scribir ^Cngrese valor a eliminar _
Leer -al
Buscar(Ra),M 4a#M 3"sM 3"s3ad)
+i .6os 2 >ulo/
,scribir -al, ^ no e0iste en el rbol_
+ino
+i .6os FC >ulo 6os F5 >ulo/
Cas"7B(Ra),M 4a#M 3"sM 3"s3ad)
+ino
Cas"7A(Ra),M 4a#M 3"sM 3"s3ad)
Ein+i
Ein+i
Ein
RBOL BINARIO DE BLS8>EDA
Cas"7A
,limina el nodo > de la posicin 6os, donde > no tiene dos
)ijos. ,l puntero 6os6ad da la posicin del padre de > o si
6os6ad 2 >ulo, es que > es el nodo 1a$. ,l puntero Fijo da la
posicin del nico )ijo de >, o si Fijo 2 >ulo es que > no tiene
)ijos.
Accin Cas"7A(Ra),M 4a#M 3"sM 3"s3ad)
Cnicio
+i .6os Fi 2 >ulo 6os F5 2>ulo/
Fijo >ulo
+ino
+i .6os FC >ulo/
Fijo 6os FC
+ino
Fijo 6os F5
Ein+i
Ein+i
+i .6os6ad >ulo/
+i .6os 2 6os6ad FC/
6os6ad Fi Fijo
+ino
6os6ad F5 Fijo
Ein+i
+ino
1ai$ Fijo
Ein+i
Ein
,jemplo!
%&
:
< &
;
+e
elimin
<
%<
%&
:
< &
;
%<
RBOL BINARIO DE BLS8>EDA
Cas"7B
,limina el nodo > de la posicin 6os, donde > tiene dos )ijos.
,l puntero 6os6ad da la posicin del padre de > o si 6os6ad 2
>ulo, es que > es el nodo 1a$. ,l puntero +uc da la posicin
del sucesor inorden de > y 6ad+uc da la posicin del padre del
sucesor inorden.
Accin Cas"7B(Ra),M 4a#M 3"sM 3"s3ad)
Cnicio
7 6os
n 6os F5
?ientras .n FC >ulo/
7 n
n n FC
Ein?ientras
+uc n
6ad+uc 7
Cas"7A(Rai,M 4a#M SucM 3adSuc)
+i .6os6ad >ulo/
+i .6os 2 6os6ad FC/
6os6ad FC +uc
+ino
6os6ad F5 +uc
Ein+i
+ino
1ai$ +uc
Ein+i
+uc FC 6os FC
+uc F5 6os F5
Ein
,jemplo! %&
:
< &
;
+e
elimin
:
%<
%#
%&
;
< &
;
%<
%#
RBOLES EN5EBRADOS
,n un recorrido inorden, la pila contiene la direccin del siguiente
elemento inorden en el recorrido. (onsideremos como alternativa que
cada nodo con un subrbol derec)o nulo, tiene en el apuntador )ijo
derec)o, la direccin al sucesor inorden, esto )ara que sea innecesario
sacar de la pila la direccin del siguiente elemento en el recorrido. A
este tipo de apuntadores se le conoce como )ebra, y al rbol que
contiene )ebras se le denomina en)ebrado. ,ste tipo de rbol requiere
que cada nodo contenga adems de dos punteros a los )ijos, un campo
)ebra para indicar si su apuntador derec)o es o no una )ebra.
Un rbol en)ebrado .7)readed tree/ se basa en la propiedad de que
una representacin de rbol basada en apuntadores desaprovec)a
muc)os apuntadores que no apuntan a ningn nodo.
(uando un nodo no tiene )ijo derec)o, se sustituye su valor de
apuntador derec)o por su sucesor inorden, y cuando no tiene )ijo
i$quierdo por su predecesor inorden.
RBOLES EN5EBRADOS
(onsideremos un rbol representado por nodos definidos de la
siguiente forma
1egistro >odo
7 -alor
>odo DFC
>odo DF5
Kooleano Febra
Ein1egistro
Febra es verdadero si F5 es nulo o una )ebra diferente de nulo, falso
en otro caso.
>odo D1a$
,l booleano )ebra es utili$ado para indicar si FC o F5 es un puntero
al )ijo i$quierdo o al )ijo derec)o, o si son apuntadores .)ebra/ al
predecesor inorden o al sucesor inorden respectivamente.
RBOLES EN5EBRADOS
A
K
5 ,
(
E
C
F @
,l rbol de momento = tiene %< apuntadores, de los cuales
%# son nulos .ms de la mitad/.
,stos apuntadores pueden reciclarse, utili$ndose como
apuntadores al sucesor inorden
RBOLES EN5EBRADOS A LA DEREC5A
A
K
5 ,
(
E
C
F @
Un rbol en)ebrado a la derec)a contiene )ebras que
apuntan al sucesor inorden derec)o.
Los nodos que no tienen )ijo derec)o, reempla$an sus
punteros por un apuntador al sucesor inorden.
Febras que apuntan al sucesor inorden.
+e presenta la accin recorrido inorden no recursivo para el rbol en)ebrado
Accin Rec"rrid"(Ra),)
Cnicio
1 1a$
1epetir
q >ulo
?ientras.1 >ulo/
q 1
1 1 FC
Ein?ientras
+i .q >ulo/
,scribir q -alor
1 q F5
?ientras . 1 >ulo q Febra/
,scribir 1 -alor
q 1
1 1 F5
Ein?ientras
Ein+i
?ientras.q >ulo/
Ein
RBOLES EN5EBRADOS A LA IZ8>IERDA
A
K
5 ,
(
E
C
F @
Un rbol en)ebrado a la i$quierda contiene )ebras que
apuntan al antecesor inorden i$quierdo.
Los nodos que no tienen )ijo i$quierdo, reempla$an sus
punteros por un apuntador al nodo antecesor inorden.
Febras que apuntan al antecesor inorden.
RBOLES 3RE5EBRADOS Y 3OS&5EBRADOS
RBOLES 3RE5EBRADOS
Un rbol pre)ebrado puede definirse de manera similar a los rboles
en)ebrados. La diferencia radica en que los apuntadores derec)os e
i$quierdos de nodos con valor >ulo son sustituidos respectivamente
por los sucesores y antecesores preorden del nodo correspondiente, en
cuyo caso se llaman pre)ebrado a la i$quierda o pre)ebrado a la
derec)a respectivamente.
RBOLES 3OS&5EBRADOS
5e manera similar en un rbol post)ebrado los apuntadores derec)os e
i$quierdos de nodos con valor >ulo son sustituidos respectivamente
por los sucesores y antecesores postorden del nodo correspondiente,
en cuyo caso se llamarn post)ebrado a la i$quierda o post)ebrado a la
derec)a respectivamente.
RBOL EN 2ON&9N
,l rbol en montn se usa en un algoritmo de ordenacin
llamado ordenacin por montn. ,ste algoritmo mejora el
tiempo de ejecucin en el peor caso comparado con el
mtodo de ordenacin rpida.
Definicin
Un rbol binario A se dice en montn si!
a/ A es completo
b/ ,l valor de cada nodo de A es mayor que los valores de
cualquiera de sus )ijos.
=;
=: <<
8< =8 :: 99
RBOL EN 2ON&9N
Insercin en un r!"# en '"n+n
En+rada1 Lista de elementos.
Sa#ida1 rbol en montn.
?ientras e0istan elementos - en la entrada se proceder de la
siguiente forma!
%. +e adiciona - al final de ? de forma que ? sigue siendo
completo, aunque no necesariamente sea un rbol en montn.
&. +i al adicionar - al rbol, no resulta de montn, se )ace
subir - )asta su lugar apropiado en ? )asta que ? sea
finalmente de montn.
=:
<# 8#
9% :9 &: '#
=:
<# 8#
9% :9 &:
'#
Mueremos a*adir 8:
a/ Aumentamos 8: en la posicin 3 2 <
b/ (omparamos A.3/ 2 8: con su padre que se encuentra en A.3P&/ 2 A.8/ 2 '#
c/ (omo '# ] 8: los cambiamos, as 8: aparece como padre de '# y como )ijo de 8#.
d/ (omo 8: \ 8# los cambiamos y 8: queda como padre de 8#.
8:
O
P
Q
R
S
R
T
R
@
P
P
U
U
?
O
P
Q
R
S
R
T
R
@
P
P
U
U
?
Q
P
=:
<# 8:
9% :9 &:
8#
'#
O
P
Q
P
S
R
Q
R
@
P
P
U
U
?
T
R
Einalmente queda
RBOL EN 2ON&9N
Insercin en un r!"# en '"n+n
,l rbol en montn con > elementos est guardado en el
vector ?. La accin CnsercinL?ontn inserta - como un
nuevo elemento del rbol. > se incrementa en %. 6 da la
posicin de - a medida que sube por el rbol y 6A5 indica la
posicin del padre de -.
Accin Insercin72"n+n(2MNM4)
Cnicio
> > 4 %
6 >
?ontn falso
?ientras .6 \ % ?ontn/
6ad 6P&
+i .- ?.6ad//
?.6/ -
?ontn verdad
+ino
?.6/ ?.6ad/
6 6ad
Ein+i
Ein?ientras
Cf .?ontn/
?.%/ -
Ein+i
Ein
RBOL EN 2ON&9N
E#i'inacin de #a ra), en un r!"# en '"n+n
En+rada1 rbol en montn ? con > elementos
Sa#ida1 rbol en montn ? con >"% elementos
- 2 ?.%/ ra$ del rbol ?
3r"cedi'ien+"1
6ara eliminar la ra$ en un rbol en montn ?!
%. Asignamos la ra$ ?.%/ a la variable -
&. 1eempla$amos el nodo ra$ a eliminar con el ltimo nodo
que fue adicionado en ?, de modo que ? sigue siendo
completo, aunque no necesariamente un rbol en montn.
'. 1eamontonamos, )aciendo que la nueva ra$ se mueva a su
lugar adecuado para que ? sea finalmente un rbol en
montn.

Accin E#i'ina7Ra),(2MNM4)
Cnicio
- ?.%/
U ?.>/
> > Z %
6 %
FC &
F5 '
?ontn falso
?ientras .F5 > ?ontn/
+i .U ?.FC/ U ?.F5//
?.6/ U
?ontn verdad
+ino
+i .?.F5/ ?.FC//
?.6/ ?.FC/
6 FC
+ino
?.6/ ?.F5/
6 F5
Ein+i
FC &D6
F5 &D64%
Ein+i
Ein?ientras
+i .?ontn/
+i.FC 2 > U ] ?.FC//
?.6/ ?.FC/
6 FC
Ein+i
?.6/ U
Ein+i
Ein
RBOL EN 2ON&9N
CREACI9N DE >N RBOL EN 2ON&9N
+e tiene una fila E de enteros. +e quiere construir una aplicacin
para crear un rbol en montn teniendo como entrada la fila E de
enteros.
En+rada1 E fila secuencial no vaca
Sa#ida1 ? rbol en montn
3r"cedi'ien+"1
%. 6rimer.E/ abre la fila E
&. 7omar.E,-/ toma el primer elemento de E y lo guarda en -.
Luego asignar - a ?.%/
'. 7omar.E, -/ toma el siguiente elemento de E y lo guarda en
-
8. ,l ciclo ?ientras se ejecuta mientras e0istan elementos en
la fila. ,l ciclo consiste en!
Cnsertar el elemento tomado de E en el rbol en ?ontn ?
7omar el siguiente elemento de E.
RBOL EN 2ON&9N
Accin Crea7r!"#72"n+n(*M 2)
Cnicio
6rimer.E/
7omar.E,-/
> %
?.>/ -
7omar.E,-/
?ientras.altimo.E//
Insercin72"n+n(2M NM 4)
NN inserta - en el vector ? con > elementos
7omar.E, -/
Ein?ientras
Ein
RBOL EN 2ON&9N
ORDENA2IEN&O EN 2ON&9N
+ea ? un rbol en montn de > elementos, lo que quiere
decir que el nodo ra$ corresponde al mayor valor del rbol.
+i e0traemos la ra$ y la colocamos en una lista, y
reempla$amos la ra$ por el ltimo nodo, es posible que el
rbol resultante no sea un montn, en este caso lo
reamontonamos para convertirlo en un rbol en montn.
>uevamente eliminamos la ra$ y la adicionamos en la
lista, y as proseguimos )asta que el rbol este vaco, y
todos sus elementos se )ayan pasado a la lista en orden
descendente.
RBOL EN 2ON&9N
ORDENA2IEN&O EN 2ON&9N
En+rada1 rbol en montn
Sa#ida1 lista de elementos en orden descendente.
3r"cedi'ien+"1
?ientras el rbol en montn no sea vaco, repetir los pasos!
% ,liminar la ra$, y colocar el elemento en la lista
& 1eempla$ar la ra$ con el ltimo nodo del rbol. +i el rbol
resultante no es un montn, entonces se reamontonar para convertirlo
en un montn, luego se continuar en el paso %.
Accin Ordena72"n+n(2M N)
Cnicio
(ab >ulo
?ientras .> \ #/
E#i'ina7Ra),(2M NM 4)
Adiciona.(ab, -, U/ PP adiciona - en la lista
Ein?ientras
Ein
:&
; 8<
8:
&%
8:
; 8<
&%
,liminamos la ra$ ! :&
,liminamos la ra$ ! 8<
L! :&
8<
; 8:
&%
&%
; 8:
L! :&, 8<
8:
; &%
,liminamos la ra$ ! 8:
L! :&, 8<, 8:
;
&%
&%
;
,liminamos la ra$ ! &%
L! :&, 8<, 8:, &%
;
,liminamos la ra$ ! ;
L! :&, 8<, 8:, &%, ;
RBOL EN 2ON&9N
CO23LE6IDAD DE LA ORDENACION 3OR 2ON&9N
,n la construccin del rbol en montn ?, el nmero de comparaciones para
encontrar el sitio adecuado para un nuevo elemento - no puede e0ceder a la
profundidad del rbol. (omo ? es un rbol completo, su profundidad esta
limitada por log
&
m, donde m es el nmero de elementos del rbol ?. 5e este
modo, el nmero de comparaciones g.n/ para insertar los n elementos del rbol
est limitado por!
g.n/ n log
&
n
6ara eliminar los n elementos del rbol ?, dado que el rbol es completo con m
elementos y que los subrboles i$quierdo y derec)o de ? son montones, se
elimina la ra$ y para reamontonar se efectan cuatro comparaciones para
mover el nuevo nodo ra$ .el ltimo del rbol/ un paso abajo en el rbol. (omo
la profundidad del rbol no e0cede a log
&
m, al reamontonar se efectan a lo
mas 8 log
&
m comparaciones para encontrar el lugar adecuado del nuevo nodo
ra$. +i ).n/ es el nmero total de comparaciones para eliminar los n elementos
de ?, lo que requiere reamontonar n veces, esta limitado por!
).n/ 8n log
&
n
,l tiempo de ejecucin para la ordenacin es proporcional a n log
&
n, o sea,
f.n/ 2 I.n log
&
n/. ,l tiempo de ejecucin de la ordenacin por el mtodo de la
burbuja es I.n
&
/. ,l tiempo medio de ejecucin de la ordenacin rpida es
I.n log
&
n/ como la del montn, pero para el peor caso es proporcional a I.n
&
/.
RBOL DE 5>**2AN
1ecordemos que un rbol binario e0tendido o rbol"& es un rbol
binario en el que cada nodo tiene # o & )ijos. Los nodos con #
)ijos se llaman nodos e0ternos y los nodos con & )ijos se llaman
nodos internos. Los nodos internos estn representados por
crculos y los nodos e0ternos estn representados por cuadrados.
,n cualquier rbol"& el nmero >
,
de nodos e0ternos es el
nmero >
C
de nodos internos mas %S o sea, >
,
2 >
C
4 %
La #"n(i+ud de ca'in" eK+ern" L
E
de un rbol"& es la suma de
todas las longitudes de camino obtenidas sobre cada camino
desde la ra$ 1 )asta un nodo e0terno.
La #"n(i+ud de ca'in" in+ern" L
I
de un rbol"& es la suma de
todas las longitudes de camino obtenidas sobre cada camino
desde la ra$ 1 )asta un nodo interno.
6ara cualquier rbol"& con n nodos internos
L
,
2 L
C
4 &n
RBOL DE 5>**2AN
+uponga que 7 es un rbol"& con n nodos e0ternos y suponga
que cada nodo e0terno tiene asignado un peso .no negativo/.
La #"n(i+ud de ca'in" c"n .es" (eK+ern") 3 del rbol 7 se
define como la suma de las longitudes de camino con sus pesos
6 2 U
%
L
%
4 U
&
L
&
4 .... 4 U
n
L
n
donde U
i
y L
i
denotan respectivamente, el peso y la longitud
del camino del nodo e0terno >
i
.
+i consideramos la coleccin de rboles"& con n nodos
e0ternos y a cada rbol"& se le dan los mismos n pesos para sus
nodos e0ternos. ,ntonces no est claro que rbol tenga la mnima
longitud de camino con peso.
,l problema general que queremos resolver es el siguiente!
+uponga una lista de n pesos dada!
b
%
, b
&
, ...., b
n
,ntre todos los rboles"& con n nodos e0ternos y con los n pesos
dado, encontrar un rbol 7 con una longitud de camino con peso
mnimo. Fuffman dio un algoritmo para encontrar ese rbol 7.
RBOL DE 5>**2AN
A#("ri+'" de 5uff'an
+e define recursivamente en funcin del nmero de pesos. La
solucin para un solo peso es simplemente el rbol con un solo
nodo.
En+rada1 + secuencia de nodos
Sa#ida1 A rbol Fuffman
2/+"d"1
1epetir )asta que + contenga un solo nodo
%. ,legir de + dos nodos n
%
y n
&
con menor peso b
%
y b
&

respectivamente.
&. ,liminar n
%
y n
&
de +.
'. Adicionar un nuevo nodo con peso b 2 b
%
4 b
&
RBOL DE 5>**2AN
Accin 5uff'an(SM n)
Cnicio
+i n 2 &
,legir n
%
con peso b
%
,legir n
&
con peso b
&
7 construye.b
%
, b
&
/
1etornar.7/
+ino
,legir nodos n
i
, n
j
con menor peso b
i
y b
j
c n
i
[ n
j
Adicionar nodo H con peso b 2 b
i
4 b
j
,nla$ar c como )ijo i$quierdo de H
,nla$ar [ como )ijo derec)o de H
7 Fuffman.+, n"%/
1etornar.7/
Ein+i
Ein
A!
&&
K!
:
(!
%%
5!
%=
,!
&
E!
%%
@!
&:
F!
:
A!
&&
(!
%%
5!
%=
E!
%%
@!
&:
F!
:
;
,!
&
K!
:
A!
&&
(!
%%
5!
%=
E!
%%
@!
&:
F!
:
;
,!
&
K!
:
%&
A!
&&
5!
%=
@!
&:
F!
:
;
,!
&
K!
:
%&
E!
%%
(!
%%
&&
A!
&&
5!
%=
@!
&:
F!
:
;
,!
&
K!
:
%&
E!
%%
(!
%%
&& '%
A!
&&
5!
%=
@!
&:
F!
:
;
,!
&
K!
:
%&
E!
%%
(!
%%
&&
'% 88
A!
&&
5!
%=
@!
&:
F!
:
;
,!
&
K!
:
%&
E!
%%
(!
%%
&&
'%
88
:9
A!
&&
5!
%=
@!
&:
F!
:
;
,!
&
K!
:
%&
E!
%%
(!
%%
&& '%
88 :9
%##
I23LE2EN&ACI9N DEL RBOL DE 5>**2AN
+e crea un bosque de rboles. (ada rbol corresponde a un nodo
de una lista que contiene informacin acerca del valor del nodo,
puntero al )ijo i$quierdo, puntero al )ijo derec)o, un campo para
el peso .probabilidad o frecuencia/ y un puntero al siguiente
rbol del bosque.
1egistro >odo
carcter -alor
>odo DFC PP puntero al )ijo i$quierdo
>odo DF5 PP puntero al )ijo derec)o
>odo DFermano PP puntero al siguiente rbol del bosque
>umrico 6eso PP peso del nodo
Ein1egistro
>odo D1a$

I23LE2EN&ACI9N DEL RBOL DE 5>**2AN
3rec"ndicin La lista enla$ada est ordenada por peso y contiene ms de dos
nodos
3"s+c"ndicin ,l bosque contiene solo un rbol .de Fuffman/
2/+"d"1 los nodos se van agrupando de dos en dos )asta que solo un rbol es
el bosque .de Fuffman/
Accin 5uff'an(R) NN en f"r'a recursiva
Cnicio
FC +eleccionarL?enor.1/
F5 +eleccionarL?enor.1/
6 (onstruyeL6adre.FC, F5/
CnsertaL6adre.1, 6/
+i .1 Fermano 2 >ulo/
1etornar 6
+ino
6 Fuffman .1/
1etornar 6
Ein+i
Ein
I23LE2EN&ACI9N DEL RBOL DE 5>**2AN
Accin 5uff'an(R) NN en f"r'a i+era+iva
Cnicio
?ientras.1 Fermano >ulo/
FC +eleccionarL?enor.1/
F5 +eleccionarL?enor.1/
6 (onstruyeL6adre.FC, F5/
CnsertaL6adre.1, 6/
Ein?ientras
1etornar 1
Ein
Accin Se#ecci"nar72en"r(R)
Cnicio
6 1
1 6 Fermano
6 Fermano >ulo
1etornar 6
Ein
I23LE2EN&ACI9N DEL RBOL DE 5>**2AN
La accin (onstruyeL6adre crea un nodo ficticio n y le asigna como
)ijos los dos nodos seleccionados previamente.
Accin C"ns+ruJe73adre(3M 8)
Cnicio
n nuevo nodo
n 6eso 6 6eso 4 M 6eso
n FC 6
n F5 M
n Fermano >ulo
1etornar n
Ein
La accin CnsertaL6adre inserta el nuevo nodo > construido en la lista con cabecera 1 en el lugar que
le corresponde segn su peso.
Accin Inser+a73adre(RM N)
Cnicio +i .1 2 >ulo/
1 >
+ino
6 1
+i .6 6eso \ > 6eso/
> Fermano 1
1 >
+ino
?ientras.> 6eso \ 6 6eso 6 Fermano >ulo/
Ant 6
6 6 Fermano
Ein?ientras
+i .6 6eso d > 6eso/
> Fermano 6
Ant Fermano >
+ino
> Fermano 6 Fermano
6 Fermano >
Ein+i
Ein+i
Ein+i
Ein
A3LICACI9N EN CODI*ICACI9N
+uponga que un conjunto de n datos A
%
, A
&
, ..., A
n
, a ser codificados
mediante cadena de r bits donde
&
r"%
] n &
r
+uponga que los elementos no se dan con la misma probabilidad.
,ntonces se puede preservar espacio de memoria usando cadenas de
longitud variable, de forma que a los elementos que apare$can ms
frecuentemente se les asigna cadenas de menor longitud, quedando las
de mayor longitud para aquellos datos menos frecuentes.
(onsidere el rbol"& 7 cuyos nodos e0ternos son los elementos U, -,
U, c, [ y H de la figura siguiente. Ibserve que cada arista de un nodo
interno )acia su )ijo i$quierdo esta etiquetada con un # y cada arista
derec)a con un %. ,l cdigo Fuffman asigna a cada nodo e0terno la
secuencia de bits desde la ra$ al nodo. ,l rbol 7 de Fuffman
determina un cdigo para los nodos e0ternosS
U! ## -!#% U! %## c!%#%# [!%#%% H!%%
,ste cdigo tiene la propiedad ^prefija_S esto es, el cdigo de cualquier
elemento no es una subcadena inicial del cdigo de otro elemento. ,sto
significa que no e0iste ambigeedad al decodificar cualquier mensaje
que usa el cdigo Fuffman.
A3LICACI9N EN CODI*ICACI9N

- H
U
U
c [
U!## -!#% U!%## c!%#%# [!%#%% H!%%
# %
# % # %
#
%
# %
GRA*OS NO DIRIGIDOS
,n muc)os problemas derivados de la ciencia de la
computacin, matemticas, ingeniera y muc)as reas se
presentan relaciones entre objetos de datos. Las relaciones
entre objetos de datos de un conjunto pueden presentarse en
forma de grafos, los cuales a su ve$ pueden representarse
mediante matrices de adyacencias.
Un grafo, corresponde a una relacin matemtica o una
matri$ en lgebra, por tanto las propiedades que pueden
aplicarse a uno de los tres modelos puede ser aplicado a
cualquiera de los otros dos. +i decimos que una relacin es
simtrica, decimos que el grafo asociado a la relacin
tambin es simtrica, la matri$ asociada tambin es simtrica.
,n muc)as aplicaciones de computacin e informtica se
estudian relaciones simtricas correspondientes a grafos no
dirigidos.
GRA*OS NO DIRIGIDOS
Definicin
Un grafo @ es un modelo matemtico definido como el par
.-, A/ donde!
-! es el conjunto finito de vrtices o nodos
A! es el conjunto finito de aristas o arcos
- 2 Av
i
P v
i
es un vrtice o nodo, v
i
-B
A 2 Aa
i
P a
i
es una arista o camino, a
i
- 0 -B
6odemos definir @ como una relacin de la siguiente forma!
A 2 A.u, v/ P u, v -B
,l conjunto A corresponde a la relacin 1 definida de la
siguiente forma!
u 1 v si y solo si e0iste una arista a 2 .u, v/
+i el par .u, v/ es ordenado decimos que @ es grafo dirigido
.dgrafo/, si no lo es decimos que es un grafo no dirigido.
GRA*OS NO DIRIGIDOS
Definicin
+i e0iste la arista .u, v/, decimos que la arista es inciden+e
sobre los vrtices u, v. 5ecimos que el vrtice v es adyacente
al vrtice u.
,l vrtice u es el vrtice origen, y v es el vrtice destino o
terminal. +i un vrtice no tiene aristas incidentes, decimos
que es un vrtice aislado o solitario.
Definicin
Un grafo no dirigido corresponde a una relacin simtrica,
pues u 1 v, podemos decir tambin que v 1 u.
(omo 1 es simtrica, decimos que u y v son vrtices
adyacentes, porque v es adyacente a u, y u es adyacente a v.
GRA*OS NO DIRIGIDOS
Grad" de un v/r+ice
+ea @ 2 .-, A/ un grafo no dirigido. 6ara cualquier vrtice
v -, el grado de v, se denota por (rad(v), es el nmero de
aristas que son incidentes con v
a b c
d e f
@rad.a/ 2 &
@rad .c/ 2 8
@rad.g/ 2 8
g
S>BGRA*OS
,l grafo .b/ y .c/ son dos subgrafos del grafo .a/
+ea @ 2 .-, A/ un grafo. ,l grafo @Y 2 .-Y, AY/ es un
subgrafo de @, si AY A, y cada arista de AY es incidente
con los vrtices de -Y
a
d c b
e
a
b c
e
a
d
e
.a/ .b/ .c/
S>BGRA*OS IND>CIDOS
+ea @ 2 .-, A/ un grafo
+ea @Y 2 .-Y, AY/ un subgrafo de @
+i AY consta de todas las aristas .u,v/ A tal que u y v -Y entonces
decimos que @Y es un subgrafo inducido
6or ejemplo! ,l grafo .c/ es inducido pero el grafo .b/ no lo es porque
falta la arista .b, e/.
Graf"s c"'.#e+"s
+ea @ 2 .-, A/ un grafo. +i f-f 2 n, el grafo completo sobre -, se denota
@
n
es un grafo no dirigido sin la$os tal que para todo a, b - donde a
b, e0iste una arista .a, b/. ,s decir deben e0istir aristas entre todos los
vrtices. 6or lo tanto tiene .nD.n"%//P& aristas.
@
%
@
&
@
'
@
8
@
%
, @
&
, @
'
y @
8
son grafos completos
GRA*O 3LANO
Un grafo es plano si podemos dibujar @ en el plano de modo
que sus aristas se intersecten solo en los vrtices de @. ,ste
dibujo se conoce como una inmersin de @ en el plano.
,l grafo es plano
(ada vrtice tiene grado '
>ingn par de aristas se
Cntersectan, e0cepto en los
vrtices
Un mapa de carreteras y autopistas puede representarse mediante
un grafo plano. @eneralmente las carreteras se intersectan en los
puntos de confluencia o en poblaciones. ,0cepcionalmente, en los
pasos a desnivel las carreteras se intersectan.
GRA*O BI3AR&I&O
Definicin
+ea @ 2 .-, A/ un grafo, @ se denomina bipartito, si - se
puede descomponer en dos subconjuntos -
%
y -
&
donde
- 2 -
%
-
&
tal que no e0isten dos vrtices adyacentes en -
%

ni tampoco en -
&
a
b
c
d e
a
b c
.a/ .b/
,l grafo .a/ es bipartito pues - se puede dividir en {a, d}y {b,
c, e}. ,l grafo .b/ no es bipartito.
GRA*O BI3AR&I&O CO23LE&O Y
GRA*OS ISO2OR*OS
Definicin
+ea @ 2 .-, A/ un grafo, @ se denomina bipartito, si - se puede
descomponer en dos subconjuntos -
%
y -
&
donde
- 2 -
%
-
&
y -
%
-
&
2 . +i cada vrtice de -
%
est unido con
los vrtices de -
&
, se tiene un grafo bipartito completo.
+i f-
%
f 2 m y f-
&
f 2 n ,l grafo se denota como @
mn
Definicin
+ean los grafos no dirigidos @
%
2 .-
%
, A
%
/ y @
&
2 .-
&
, A
&
/.
Una funcin
! -
%
-
&
es un isomorfismo entre @
%
y @
&
, si
a/ es inyectiva y sobreyectiva
b/ a, b -
%
, .a, b/ A
%
si y solo si ..a/, .b// A
&
(uando e0iste la funcin , decimos que @
%
y @
&
son isomorfos
Un isomorfismo es una correspondencia entre cada elemento de un
grafo y cada elemento de otro grafo llamado isomorfo
.a/
a b
c d
p
s
q r
.b/
Los grafos .a/ y .b/ son isomorfos, porque e0iste una correspondencia
entre los nodos
.a/ 2 p,
.b/ 2 r,
.c/ 2 q y
.d/ 2 s
La correspondencia entre los vrtices de un isomorfismo mantiene las
adyacencias.
GRA*OS CONEAOS
Definicin
+ea @ 2 .-, A/ un grafo no dirigido, @ es cone0o si e0iste un camino
simple entre cualquier par de vrtices de @. +i un grafo no es cone0o,
decimos que es discone0o.
a
b c
d e f
.a/ .b/
,l grafo .a/ es cone0o. ,l grafo .b/ no es cone0o, e es un nodo aislado.
a
b
d
c
e
GRA*OS CONEAOS
C"'."nen+es c"neK"s en un (raf" n" diri(id"
Un componente cone0o de un grafo @ es un subgrafo cone0o inducido
ma0imal, es decir un grafo cone0o inducido que por si mismo no es un
subgrafo propio de ningn otro subgrafo cone0o de @.
a b
d c
a
d
b
.a/ .b/
.c/
.a/ ,s un grafo cone0o que tiene solo un componente cone0o, el mismo
.b/ ,s uno de los subgrafos inducidos de .a/
.c/ ,s un grafo que contiene dos componentes cone0os
RE3RESEN&ACI9N DE GRA*OS NO DIRIGIDOS
Un grafo no dirigido puede representarse de igual forma que
un grafo dirigido, mediante una matri$ de adyacencia
simtrica o una lista de adyacencia. Aunque es necesario
entender que una arista no dirigida .u, v/, puede representarse
como dos aristas dirigidas, una .u, v/ y otra .v, u/.
Un grafo dirigido puede representarse como una relacin
simtrica, )aciendo uso de estructuras de datos!
Z Arreglos bidimensionales .matri$ de adyacencia simtrica/
Z Listas enla$adas .lista de adyacencia/
RE3RESEN&ACI9N 2EDIAN&E 2A&RIZ DE
ADYACENCIA
Un grafo no dirigido puede representarse mediante una
matri$ de adyacencia, en donde se representen las aristas
desde el vrtice i al vrtice j con un % en la entrada Qi, jR, y un
cero cuando no e0ista una arista. La matri$ de adyacencia
juega un rol muy importante, pues a partir de ella pueden
encontrarse otras matrices que relacionan los caminos de
longitud mayor a uno, y a partir de ella encontrar la matri$ de
caminos.
% &
'
# % %
% # %
% % %
2a+ri, de
AdJacencia
si'/+rica
@rad.%/ 2 & @rad.&/ 2 & @rad.'/ 2 8
A partir de la matri$ de adyacencia se puede obtener el grado de un
vrtice.
,ntrada ! A matri$ de dimensin > 0 >
+alida ! grado.u/, u el vrtice a verificar
La funcin Ibtener grado.u/ suma los elementos de la fila u. (uando
encuentra un % en la columna j, significa que j es adyacente a u. 5espus
de sumar toda la fila correspondiente al vrtice que se esta verificando, se
suma el elemento AQi, iR que significa % si es un bucle o # si no )ay un
bucle.
*uncin O!+ener7Grad"(AM NM u) 1 En+er"
Cnicio
i u
grado #
6ara j desde % )asta >
grado grado 4 AQi, jR
Ein6ara
grado grado 4 AQi, iR PP suma el bucle si lo )ubiese
1etornar grado
Ein
RE3RESEN&ACI9N 2EDIAN&E LIS&AS
ENLAZADAS
Lis+a de adJacencia
Una lista de adyacencia es una lista de los vrtices. (ada uno
de los vrtices apunta a su ve$ a una lista de los vrtices
adyacentes.
%
&
'
& ' D
% ' D
% & ' D
RECORRIDO DE >N GRA*O NO DIRIGIDO
Rec"rrid" en .r"fundidad RE3 en un (raf" n" diri(id"
La idea general del recorrido en profundidad comen$ando en
un nodo v es la siguiente! 6rimero e0aminamos el nodo
inicial. Luego e0aminamos un nodo adyacente .vecino/ a v,
luego un adyacente del adyacente de v y as sucesivamente
)asta llegar a un punto muerto, o sea al final del camino. Al
volver si )ay otro nodo adyacente a v no visitado, se toma
como punto de partida este nodo y se reali$a el mismo
procedimiento. (uando estn e0aminados .visitados/ todos
los nodos adyacentes a v, el recorrido que se inicio con v )a
finali$ado. +i queda algn nodo sin visitar, tomamos
cualquiera de ellos y procedemos como con el nodo v. ,l
procedimiento sigue )asta que estn e0aminados .visitados/
todos los nodos del grafo.
RECORRIDO DE >N GRA*O NO DIRIGIDO
Rec"rrid" en .r"fundidad RE3 en un (raf" n" diri(id"
En+rada1 @ grafo, v vrtice inicial, que ser la ra$ del rbol
Sa#ida1 A rbol abarcador
3rec"ndicin1 La bsqueda empie$a en el nodo v
Accin Rec"rrid"()
Cnicio
6ara cada v -
-isita.v/ # PP iniciali$a los nodos como no visitados
Ein6ara
6ara cada v -
+i .-isita.v/ 2 #/
1,6.v/ PP llama a procedimiento de bsqueda
Ein+i
Ein6ara
Ein
RECORRIDO DE >N GRA*O NO DIRIGIDO
Rec"rrid" en .r"fundidad RE3 en un (raf" n" diri(id"
Accin RE3(v)
Cnicio
-isita.v/ % PP cuando se visita el nodo v su estado cambia a %
6ara cada nodo b adyacente a v
+i .-isita.b/ 2 #/
Cnserta.A, v, b/ PP inserta la arista .v, b/ en A
RE3(V) PP llama a procedimiento 1,6 para b
Ein+i
Ein6ara
Ein
La recursin slo se detiene cuando la e0ploracin del grafo se ve
bloqueada .en un punto muerto/ y no se puede proseguir.
%
& '
9 : ; <
8
RE3 B rec"rrid" en .r"fundidad
&K6.%/ llamada inicial
' K6.&/ llamada recursiva
8 K6.'/ llamada recursiva
: K6.9/ llamada recursiva
9 K6.:/ llamada recursiva, no se puede continuar
; K6.8/ no se )a visitado el nodo 8 vecino de %
< K6.;/ llamada recursiva
= K6.</ llamada recursiva, no se puede continuar
%#>o quedan nodos por visitar
(ada nodo de @ se visita solo una ve$. 6or lo tanto el algoritmo recursivo
se invoca n veces. ,l recorrido en profundidad de un grafo cone0o asocia
un rbol abarcador .recubridor/, en donde el punto de partida elegido
pasa a ser la ra$ del rbol.
+i el grafo no es cone0o, entonces un recorrido en profundidad, asocia al
grafo un bosque de rboles abarcadores. Uno para cada componente
cone0o.
,n el ejemplo anterior se construye el rbol abarcador!
%
8
;
<
&
'
9
:
3un+"s de ar+icu#acin
,n un grafo cone0o, puede e0istir un vrtice que sirva de articulacin
entre dos componentes cone0os. ,n el ejemplo el vrtice % es de
articulacin, ya que si se elimina el vrtice % y las aristas que inciden en%,
se obtendra un subgrafo que ya no es cone0o. Muedaran dos
componentes cone0os.
%
& '
9 : ; <
8
+i se elimina el vrtice % y las aristas que inciden en el, se obtendra un grafo
que ya no es cone0o.
& '
9 :
; <
8
Un grafo se denomina bicone0o si carece de puntos de articulacin.
RECORRIDO DE >N GRA*O NO DIRIGIDO
Rec"rrid" en a'.#i+ud REA en un (raf" n" diri(id"
,n un recorrido en amplitud, el recorrido se inicia con un nodo de
partida v. A continuacin se visitan los nodos adyacentes al nodo
inicial v .nodos a una distancia % del nodo v/, luego se visitan los
nodos que estn a una distancia & y as sucesivamente )asta que no
quede ningn nodo por visitar.
,l algoritmo de recorrido en amplitud no es recursivo
En+rada1 @ grafo, v vrtice inicial, que ser la ra$ del rbol
Sa#ida1 A rbol abarcador
3rec"ndicin1 La bsqueda empie$a en el nodo v
La cola ( debe estar vaca.
RECORRIDO DE >N GRA*O NO DIRIGIDO
Accin REA(v)
Cnicio
Cnit.(/ PP cola vaca
-isita.v/ % PP v es visitado
,ncolar.(, v/
?ientras .-aco.(//
5ecolar.(, v/
?ientras e0ista b adyacente a v
+i .-isita.b/ 2 #/
-isita.b/ %
Cnserta.A, v, b/ PP inserta la arista .v, b/ en el rbol
A ,ncolar.(,b/
Ein+i
Ein?ientras
Ein?ientras
Ein
E K A
@ 5 (
,
+i se comien$a con A, se visitan los nodos
Irigen A
primero K, (, 5 distancia %
luego E, @ distancia &
Einalmente , distancia '
+i se comien$a con ,, se visitan los nodos
Irigen ,
primero E, @ distancia %
luego K, 5 distancia &
finalmente A, ( distancia '

Das könnte Ihnen auch gefallen