1. Estructuras Discretas II
ARBOLES BINARIOS
Este tipo de árbol se caracteriza porque tiene un vértice principal y de
él se desprenden dos ramas. La rama izquierda y la rama derecha:
Prof. Miguel Angel Puebla
2. Estructuras Discretas II
Nodo.
Un árbol binario es un conjunto de elementos, cada uno de los cuales
se d
denomina nodo. Un á b l binario puede tener cero nodos y en este
i d U árbol bi i d d
caso se dice que está vacío. Puede tener un sólo nodo, y en este caso
existe solamente la raíz del árbol o puede tener un número finito de
nodos. Cada nodo puede estar ramificado por la izquierda o por la
derecha o puede no tener ninguna ramificación.
Raíz.
En un árbol binario se pueden distinguir la raíz principal y las raíces de los
demás subárboles.
subárboles
Prof. Miguel Angel Puebla
3. Estructuras Discretas II
La raíz principal es el nodo cuya información es 1.
Podemos distinguir también el árbol:
cuya raíz es el nodo con información 4. Este nodo es la raíz del
árbol de la derecha El árbol de la izquierda:
derecha.
tiene como raíz el nodo cuya información es 2
y tiene solamente una ramificación.
Prof. Miguel Angel Puebla
4. Estructuras Discretas II
Padre.
Un padre es un nodo que puede o no tener ramificaciones.
Por ejemplo:
En los tres casos el nodo 1 es un padre. En el caso I es un padre que no tiene hijos.
En el caso II, el nodo 1 es el padre del nodo 2. En el caso III el nodo 1 es padre de
los nodos 2 y 3 pero no es padre del nodo 4.
Prof. Miguel Angel Puebla
5. Estructuras Discretas II
Hijo.
Hij
Nos referimos al ejemplo anterior. En el caso I el nodo 1 no tiene hijos. En el
caso II, 2 es un hijo del nodo 1 y en el caso III, 4 es hijo de 2 y el padre de 2
es el nodo 1.
Hermano.
Hermano
Nos referimos al caso III del ejemplo anterior. Los hermanos son los hijos de un
mismo padre. Los nodos 2 y 3 son hermanos. El nodo 4 no tiene hermanos.
Hoja.
Una hoja es un nodo que no tiene ramificaciones Según el caso III el nodo 3 es
ramificaciones.
una hoja mientras que el nodo 2 no se puede considerar como hoja porque tiene
una ramificación por la derecha. El nodo 4 también es una hoja.
Nodo no Terminal.
Un nodo no terminal es aquel que posee por lo menos una ramificación. En el
q q p p
caso III, el nodo 1 o el nodo 2 son nodos no terminales, mientras que el nodo 4 o
el nodo 3 son nodos terminales.
Prof. Miguel Angel Puebla
6. Estructuras Discretas II
Camino.
Un árbol siempre se examina hacia abajo
Al nodo 3 podemos llegar desde el nodo 2. Nunca se puede examinar el nodo 2
d d ll d d l d 2 N d i l d
a partir del nodo 3. Los apuntadores derecho o izquierdo de cualquier nodo apuntan
al árbol derecho o izquierdo que siguen a ese nodo. Nunca apuntan a los nodos
precedentes.
Un camino, es el conjunto de nodos que tenemos que visitar con el propósito de
llegar a un nodo específico.
Prof. Miguel Angel Puebla
7. Estructuras Discretas II
Por ejemplo para llegar al nodo 3, es necesario recorrer
el camino:
1 -- 2 -- 3
Del mismo nodo, para llegar al nodo 7 debemos recorrer
el camino:
1 -- 4 -- 5 -- 7
Obsérvese que l caminos se configuran siempre hacia abajo.
Ob é los i fi i h i b j
Nunca se puede hablar de un camino para llegar al nodo 3 así:
7 -- 5 -- 4 -- 1 -- 2 -- 3
Este camino no se puede configurar.
Prof. Miguel Angel Puebla
8. Estructuras Discretas II
Longitud.
Longitud, es el número de nodos que se deben recorrer para pasar de un nodo a otro.
Por j
P ejemplo:l
La longitud entre 1 y 5 es 3. La longitud entre 7 y 7 es 0. La longitud entre
1 y 2 es 1. Obsérvese que no podemos calcular la longitud entre 2 y 7 ya que
el camino 2 -- 1 -- 7 no existe.
Prof. Miguel Angel Puebla
9. Estructuras Discretas II
Descendiente.
D di t
El nodo 3 es descendiente del nodo 1 si a partir de 1 podemos llegar a 3 a través
j p
de un camino. Por ejemplo:
El nodo 3 es descendiente de 1 ya que a 3 podemos llegar por el camino:
1 -- 2 -- 3
Siempre que exista un camino para llegar de un nodo X a un nodo Y, el nodo Y
es un descendiente de X. Para el ejemplo anterior, el nodo 5 es descendiente de 4
pero el nodo 4 no es descendiente de 2.
l d d di d 2
Prof. Miguel Angel Puebla
10. Estructuras Discretas II
Ancestro.
A t
El nodo 1 es un ancestro del nodo 3 si existe un camino entre 1 y 3. Basándonos
en el ejemplo anterior, 1 es un ancestro de 3 ya que existe un camino entre los nodos.
No se puede hablar de que 4 sea un ancestro de 3 ya que el camino 4 -- 1 -- 2 -- 3
no existe.
Nivel.
Cada nodo tiene un nivel dentro de un árbol binario. Por definición el nodo raíz
tiene un nivel 0 y los demás nodos tienen el nivel de su padre más 1.
Por j
P ejemplo: l
El nodo 1 tiene un nivel 0 en tanto que el nodo
7 tiene un nivel 3. Obsérvese que el nivel del
nodo 7 es la longitud del camino desde la raíz
g
hasta el nodo.
Prof. Miguel Angel Puebla
11. Estructuras Discretas II
Grado de un Nodo
Nodo.
El grado de un nodo es el número de hijos. Por ejemplo el grado del nodo 1 es 2.
El grado de un nodo terminal siempre es 0. En los árboles binarios, el grado de
un nodo fl ú entre 0 y 2. Existen otros tipos de árboles, (árbol eneario), en los
d fluctúa 2 E i i d á b l (á b l i ) l
cuales ésta restricción no existe.
Altura.
La altura de un árbol binario es el nivel de la hoja o de las hojas que están más
distantes de la raíz. Basándonos en el ejemplo, la altura del árbol cuya raíz es 1,
raíz ejemplo 1
corresponde a la longitud del camino para llegar a la hoja más distante de la raíz.
En este caso será 3.
Prof. Miguel Angel Puebla
12. Estructuras Discretas II
Arbol Binario Completo.
Un Arbol Binario Completo es aquel en el que todo nodo no terminal tiene sus dos
hijos. El siguiente es un árbol binario completo de nivel 3:
Obsérvese que todos los nodos no terminales tienen sus dos hijos. El máximo número
hijos
de nodos que puede tener un árbol de nivel n es: 20 + 21 + 22 + 23 ....+ 2n
Si n es 3 entonces: 20 + 21 + 22 + 23 = 15
Este á b l
E árbol es un árbol binario completo de nivel 3 y éste es el máximo número de
á b l bi i l d i l é l á i ú d
nodos que puede tener un árbol de nivel 3.
Prof. Miguel Angel Puebla
13. Estructuras Discretas II
Arbol Binario I
A b l Bi i Igual.
l
Dos árboles son iguales si los dos son vacíos. Existe otro caso en el cual dos
árboles son iguales:
Estos árboles son iguales porque sus raíces son iguales y también lo son su
respectivo árbol izquierdo y derecho. Para que un árbol sea igual a otro, es
derecho
necesario que el contenido de cada uno de sus respectivos nodos sea el mismo y
que tengan las mismas relaciones de parentesco.
Prof. Miguel Angel Puebla
14. Estructuras Discretas II
Arbol Binario S
A b l Bi i Semejante.
j t
Dos árboles son semejantes si tienen el mismo número de nodos y los valores de
los nodos del primer árbol son los mismos que los valores de los nodos del segundo,
sin importar la relación de parentesco entre ellos.
Por ejemplo:
Prof. Miguel Angel Puebla
15. Estructuras Discretas II
Peso.
El Peso de un árbol en un nodo dado es el número de nodos en el árbol sin contarse
el mismo. Por ejemplo:
El peso del árbol cuya raíz es 1, corresponde al número de nodos de ese árbol 4.
El nodo 3 tiene un peso de 2.
Prof. Miguel Angel Puebla
16. Estructuras Discretas II
FORMAS DE RECORRER UN ARBOL BINARIO
Universalmente existen tres formas de recorrer un árbol binario:
Preorden
Inorden
Posorden
Forma de recorrer un árbol binario en Preorden:
1. Examinar el dato del nodo raíz.
2.
2 Recorrer el árbol izquierdo en preorden.
preorden
3. Recorrer el árbol derecho en preorden.
Si deseamos recorrer todo el árbol, evidentemente debemos comenzar por el nodo
árbol
raíz. Este método exige examinar primero el nodo raíz. Examinar un nodo es
revisar su contenido y eventualmente modificarlo en tanto que visitar un nodo es
utilizar la dirección de ese nodo con el propósito de seguir explorando el árbol hacia
ili l di ió d d l ói d i l d lá b lh i
abajo. Si deseamos recorrer un árbol en preorden, con el propósito de escribir su
contenido, debemos examinar el contenido de cada uno de sus nodos, mientras si
deseamos contar sus nodos, es necesario visitar cada nodo.
Prof. Miguel Angel Puebla
17. Estructuras Discretas II
Forma de recorrer un árbol binario en Inorden:
1. Recorrer el árbol izquierdo en inorden.
q
2. Examinar la raíz.
3. Recorrer el árbol en inorden.
Si deseamos recorrer todo el árbol, evidentemente debemos comenzar por el nodo
izquierdo. Este método exige examinar primero el nodo izquierdo. Examinar un
nodo es revisar su contenido y eventualmente modificarlo en tanto que visitar un
nodo es utilizar la dirección de ese nodo con el propósito de seguir explorando el
árbol. Si deseamos recorrer un árbol en inorden, debemos ante todo comenzar por
el nodo izquierdo, seguido por su raíz y por último ir al nodo derecho, con el
l d i i d id í últi i l d d h l
propósito de escribir su contenido, debemos examinar el contenido de cada uno
de sus nodos, mientras si deseamos contar sus nodos, es necesario visitar cada nodo.
Prof. Miguel Angel Puebla
18. Estructuras Discretas II
Forma de recorrer un árbol binario en Posorden:
1. Recorrer el árbol izquierdo en posorden.
1 R lá b li i d d
2. Recorrer el árbol derecho en posorden.
3. Examinar la raíz.
Si deseamos recorrer todo el árbol, evidentemente debemos comenzar por el nodo
izquierdo. Este método exige examinar primero el nodo izquierdo. Examinar un
q g p q
nodo es revisar su contenido y eventualmente modificarlo en tanto que visitar un
nodo es utilizar la dirección de ese nodo con el propósito de seguir explorando el
árbol. Si deseamos recorrer un árbol en posorden, debemos ante todo comenzar por
el nodo izquierdo, seguido por su nodo derecho y por último ir a su raíz, con el
propósito de escribir su contenido, debemos examinar el contenido de cada uno
de sus nodos mientras si deseamos contar sus nodos, es necesario visitar cada nodo.
nodos, nodos nodo
Prof. Miguel Angel Puebla
19. Estructuras Discretas II
Inorden: GDBHEIACJKF
Preorden: ABDGEHICFJK
Postorden: GDHIEBKJFCA
Prof. Miguel Angel Puebla
26. Estructuras Discretas II
Representación de Expresiones Matemáticas
Mediante arboles Binarios
_
(A+B)*C-D/E
(A+B)*C D/E
* /
+ C D E
A B
Prof. Miguel Angel Puebla
27. Estructuras Discretas II
Represente en un Arbol Binario las
siguientes expresiones:
(A+B) (C D)
(A+B)*(C-D)
((A-C)*D)/(A+(B+D))
(A*B+C*D)-(A/B-(D+E))
(((A+B)*C+D)*E)-((A+B)*C-D)
(A+B)/(C-D)*(A-B)/(A*C)
Prof. Miguel Angel Puebla
29. Estructuras Discretas II
Diseñe unos algoritmos para:
•Recorrer el árbol organizarlo de mayor a menor y
además ajustar los valores a números pares.
d á j t l l ú
•Recorrer el árbol organizarlo de menor a mayor y ajustar
Recorrer
los valores tomando en cuenta que todo numero mayor de
15 se le restara 4 y se dividirá entre 2
Prof. Miguel Angel Puebla
30. Estructuras Discretas II
ARBOLES ENEARIOS
Un Arbol Eneario es una estructura de datos que se caracteriza
porque cada nodo tiene un número indeterminado de hijos.
hijos
Por ejemplo:
El nodo 1 tiene cuatro hijos (2, 3, 4, 5), los nodos 2, 3 y 5 no
tienen hijos y el nodo 4 tiene tres hijos (6, 7, 8).
Prof. Miguel Angel Puebla
31. Estructuras Discretas II
Forma de recorrer un árbol eneario en Inorden:
1. Primer hijo en inorden.
2. Padre.
3. Hermano en inorden
Si deseamos recorrer todo el árbol, evidentemente debemos comenzar
por su primer hijo en inorden. Este método exige examinar primero el
i hij i d E t ét d i i i l
nodo primogénito. Si deseamos recorrer un árbol enearios en inorden,
debemos ante todo comenzar por su primer hijo, seguido por su padre
y por último ir a su hermano, con el propósito de escribir su contenido,
debemos examinar el contenido de cada uno de sus nodos, mientras si
deseamos contar sus nodos, es necesario visitar cada nodo.
Prof. Miguel Angel Puebla
32. Estructuras Discretas II
El recorrido inorden es: 2, 1, 5, 3, 6, 10, 7, 4, 11, 8, 12, 13, 9
Prof. Miguel Angel Puebla
33. Estructuras Discretas II
Recorrido en Preorden
1. Padre.
2. Primer hijo en preorden.
3. H
3 Hermano en preorden.
d
Si deseamos recorrer todo el árbol, evidentemente debemos comenzar por su padre.
Este método exige examinar primero el nodo padre. Si deseamos recorrer un árbol
eneario en preorden, debemos ante todo comenzar por su padre, seguido de su
p
primer hijo y por último ir a su hermano, con el propósito de escribir su contenido,
j p , p p ,
debemos examinar el contenido de cada uno de sus nodos, mientras si deseamos
contar sus nodos, es necesario visitar cada nodo.
Prof. Miguel Angel Puebla
34. Estructuras Discretas II
El recorrido preorden es: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Prof. Miguel Angel Puebla
35. Estructuras Discretas II
Forma de recorrer un árbol eneario en Posorden:
1. Hijo en posorden.
2. Hermano en posorden.
3. Padre en posorden.
Si deseamos recorrer todo el árbol, evidentemente debemos comenzar por su hijo
en posorden. Este método exige examinar primero el nodo hijo en posorden. Si
deseamos recorrer un árbol eneario en posorden, debemos ante todo comenzar por
d áb l i d d b d
su hijo en posorden, seguido de su hermano en posorden y por último ir a su padre
en posorden, con el propósito de escribir su contenido, debemos examinar el
contenido de cada uno de sus nodos, mientras si deseamos contar sus nodos, es
necesario visitar cada nodo.
Prof. Miguel Angel Puebla
36. Estructuras Discretas II
El recorrido posorden es: 2, 10, 13, 14, 15, 11, 12, 3, 9, 1
Prof. Miguel Angel Puebla
37. Estructuras Discretas II
Forma de recorrer un árbol eneario en Niveles.
Cada nodo tiene un nivel dentro de un árbol eneario. Por definición el nodo raíz
tiene un nivel 0 y los demás nodos tienen el nivel de su padre más 1.
1
Observemos este árbol:
El recorrido por niveles es: el nodo 10 corresponde al nivel 0; 4, 8, 1
corresponden al nivel 1; 5, 15, 30 corresponden al nivel 2 y 7, 2, 3, 28,
11 corresponden al nivel 33.
Prof. Miguel Angel Puebla