Está en la página 1de 70

ARBOLES

Árboles
Es un tipo especial de grafo.
El primero en utilizarlo fue Gustavo Kirchhoff en sus
trabajos sobre redes eléctricas.
En 1857 Arthur Cayley utilizo un tipo especial de
grafo para enumerar diversos isómeros de los carburos
saturados.
Árboles como Modelos
Los árboles se utilizan como modelos en ciencias tan
diversas como la informática, la química, la geología,
la botánica y la psicología.
 En muchas aplicaciones es necesario distinguir un nodo
particular de un árbol, que es designado como la raíz (los
definimos recursivamente antes).
 Además, asumimos que los arcos pasan a ser dirigidos, siempre
alejándose de la raíz. Por ejemplo,
Con la llegada de los computadores, los arboles se
emplean en el estudio de las estructuras de datos,
clasificación, teoría de la codificación y en los
problemas de optimización.
Uso de árboles: Árbol de Decisión
 Se desean elegir los puestos de Director y Auxiliar de Director entre
Lucía, María, Tomás y Juan. Se tiene que ni Lucía ni María serán
elegidas para director. También se sabe que habiendo elegido a
Tomás como director Lucía no debería ser auxiliar suyo. Construir el
árbol de decisión.
 Solución

Elegir Director Elegir Auxiliar Selección

Tomás Director: Juan, Auxiliar: Tomás


Juan Lucía Director: Juan, Auxiliar: María
María Director: Juan, Auxiliar: María
Inicio María
Lucía Director: Tomás, Auxiliar: Juan
Juan
Tomás Lucía
María Director: Tomás, Auxiliar: María
Hidrocarburos Saturados y árboles.
 Los grafos pueden usarse para representar moléculas,
con los átomos representando vértices y los enlaces entre
ellos mediante aristas. El matemático inglés Arthur
Cayley descubrió los árboles en 1857 cuando trataba de
enumerar los isómeros de los compuestos.

Butano
Representación de Organizaciones
La estructura de una organización se puede modelar
utilizando un árbol con raíz. Cada vértice de este árbol
indica un puesto en la organización.

Presidente

Vicepresidente Vicepresidente
de Investigacion Mercantil Vicepresidente
Y desarrollo Servicios

Director Director Director Adjunto Adjunto


Investiga Desarrollo Desarrollo Vicepresi Vicepresidente
ción Software Hardware dente Ventas
Mercanti
l

Organigrama
Sistemas de ficheros de ordenadores.
 En la memoria de un ordenador, los ficheros se organizan
en directorios. Un directorio puede contener tanto ficheros
como subdirectorios. La raíz de un directorio contiene el
sistema de ficheros completo. Así, un sistema de ficheros
puede representarse mediante un árbol con raíz, donde la
raíz representa el directorio raíz, los vértices internos
representan los subdirectorios y las hojas representan los
ficheros ordinarios o subdirectorios vacíos. /

usr bin tmp

bin rje spool


junk

Sistema de ficheros de un ordenador ls mail who


khr
Uso típico de los arboles:
representación de estructuras jerárquicas organizaciones
árbol genealógico
directorios
acceso rápido a datos ordenados en número desconocido
como vectores ordenados respecto a vectores normales
sistemas de ficheros avanzados
elementos de representación en juegos
sistemas de compresión
Los arboles son una clase particular de grafos que aparecen
muy usualmente en computación:
Como herramienta para construir algoritmos eficientes;
para construir códigos eficientes para la transmisión de datos;
para estudiar juegos;
como documentos XML entre otros.
Definición
Un árbol es un grafo conexo y sin ciclos.
En el mismo tono botánico, se define un bosque como un
grafo sin ciclos (si es conexo, será un árbol; si no lo es,
sus componentes conexas serán arboles).
Un bosque es un (multi)grafo acíclico. A cada
componente conexa de un bosque se le llama árbol. En un
árbol, a los vértices de grado uno se les llama hojas.
Existen varias formulaciones equivalentes. Por ejemplo,
 Un grafo no dirigido es un árbol si y sólo si hay un único
camino simple entre cualquiera dos de sus vértices.
Puesto que un árbol no puede contener ciclos, es un
grafo acíclico, tampoco puede tener bucles o aristas
múltiples. Por tanto, un árbol es necesariamente un grafo
simple.

a
a b
b

c d
c d

f
e
e f
G1 G2
Algunos ejemplos de grafos que no son árboles:

a b a b

bosque
c d c d

e G3 f e G4 f
Otros ejemplos de grafos que no son árboles:

G1 G2 G3

G4
Todo grafo conexo y acíclico es un árbol. ¿Qué podemos
decir de los grafos acíclicos, pero no necesariamente
conexos?
Estos grafos se llaman bosques y tienen la propiedad de que
cada una de susUncomponentes conexasconexas
grafo con tres componentes es un árbol.

Ejemplo de un bosque
Teorema 1:
 Un grafo no dirigido es un árbol si, y sólo si, hay un único
camino entre cada pareja de vértices.

Demostración:
 Primero supongamos que T es un árbol. Entonces, T es un
grafo conexo y acíclico. Sean x e y dos vértices de T. Puesto
que T es conexo, por el Teorema 1, hay un camino entre x e y.
 Además, este camino debe ser único, puesto que si hubiera un
segundo camino, entonces el recorrido construido al combinar
el primer camino de x a y con el camino de y a x, daría un
circuito.
Terminología de grafos
 Sea T un grafo con raíz v.
 Si hay un camino de A hasta B, se dice que A es antecesor de B, y que B es
sucesor de A.
 El padre de un nodo u tal que u  v, es el nodo u′ tal que existe un arco
dirigido desde u′ a u en T. También decimos que u es un hijo de u′.
 Dos nodos son hermanos si tienen el mismo padre.
 Los ancestros de u son todos los nodos u′  u en el camino desde u hasta v.
Los descendientes de u son todos los vértices que tienen a u como ancestro.
 Generación, es un conjunto de nodos con la misma profundidad
 Una hoja es un nodo sin hijos. Los nodos que no son hojas se llaman internos.
 El subárbol de T con raíz es u es el subgrafo de T inducido por u y todos sus
descendientes.
 Raíz es el nodo que no tiene ningún 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 raíz hasta ese nodo. El nivel puede definirse como 0 para la raíz
y nivel (predecesor)+1 para los demás nodos.
 Los nodos de la misma generación tienen el mismo nivel.
 Grado de un nodo, es el número de flechas que salen de ese nodo
(hijos). El número 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 número de arcos que
hay entre ellos.
Ejemplo
 Un grupo de ajedrecistas que luchan por un campeonato. Cada
ajedrecista tiene una única oportunidad para enfrentar al campeón
vigente, y que el perdedor de cualquier encuentro será eliminado
de la contienda.
 Sea A = (V, E) un grafo no dirigido donde los vértices de V representan los
ajedrecistas y las aristas de E representan los encuentros.
 Sea V = { v1, v2, v3, v4, v5, v6, v7, v8, v9 }.
 Al inicio, v1 es el campeón vigente y que se dan los siguientes encuentros:
 v1 venció a v2, v3 y v4 y pierde con v5.
 v5 venció a v6 y v7 y pierde con v8.
 v8 pierde con v9.
El árbol que detalla esta situación, es el siguiente:

 Los vértices v2, v3, v4, v6, v7, v9 son


hojas.
 Los vértices v1, v5, v8 son ramas.
Considere el árbol con raíz v0

v1 v2 v3

v4 v5 v6

v7 v8 v10
v9

a. Nivel de v5: 2 b. Nivel de v0: 0


c. Altura del árbol: 3 d. Hijos de v3: v5 y v6
e. Padre de v2: v0 f. Hermanos de v8: v7 y v9
g. Descendientes de v3: v5, v6 y v10 h. Ancestros de v5: v0 y v3
Hojas y nodos internos
Una hoja es cualquier nodo que tiene sus hijos vacíos.
Un nodo interno es cualquier nodo con al menos un hijo no
vacío.

a Nodos internos

b c

d e f

Hojas g h

Franco Guidi 5
Polanco
Raíz
hijo
Padre
Hermano Subárbol

hoja
Nivel de profundidad = 7
Grado de un nodo = 3
Grado del árbol = 3
a

b c d e

f g h ij k

l m subárbol de nodo e

subárboles de nodo b

subárboles de nodo c

7
Ruta y largo de una ruta
Si n1, n2,... nk es una secuencia de nodos en un árbol, de modo que n i
es padre de ni + 1, para 1<=i<=k, entonces esta secuencia se llama
ruta desde n1 a nk.
El largo de esta ruta es k.

a
n1

b c
n2

d e f
n3
g h

9
Ancestros y descendientes
Si existe una ruta desde un nodo A a un nodo B, entonces A es
ancestro de B y B es descendiente de A.
Luego, todos los nodos de un árbol son descendientes de la raíz
del árbol, mientras que la raíz es el ancestro de todos los nodos.
Altura
La altura de un nodo M de un árbol corresponde al número de
nodos en la ruta desde la raíz hasta M.
La altura de un árbol corresponde a la altura del nodo más
profundo.

a
Altura del
b c nodo=2

Altura del árbol=4


d e f

g h
Niveles
 Todos los nodos de altura d están en el nivel d en el árbol.
 La raíz está en el nivel 1, y su altura es 1.

Nivel 1
a
Nivel 2
b c
Nivel 3
d e f
Nivel 4 g h
ARBOL
Ejemplo:
RAIZ A

Profundidad
B C
ESE NODO
Altura D E F G

HOJA
H I

Altura(A) = 4
Prof(A) = 0
Prof(H) = 3
Definición 2:
Un árbol con raíz es un árbol en el que uno de sus
vértices ha sido designado como la raíz y todas las
aristas están orientadas de modo que se alejan de la
raíz.
Con raíz en a
T a
f g
b c d

d b
e
a f g e
¿Cuál es el padre de c? a
c ¿Cuál es el hijo de c? e
¿Cuáles son los hermanos de b? c y d
¿Cuáles son los antecesores de g? b y a
¿Cuáles son los descendientes de b? f y g
¿Cuáles son los vértices internos? b y c
¿Cuáles son las hojas? f, g, e y d

Un árbol y los árboles con raíz construidos al designar dos raíces.


Con raíz en a Con raíz en c
T a c
f g
b a
c d e
b b d
d
e
a f g e f g

Un árbol y los árboles con raíz construidos al designar dos raíces.


Proposiciones
Sea G un grafo.
i) El grafo G es un árbol si y solamente si es conexo y tiene la
propiedad de que al eliminar una arista cualquiera el grafo
deja de ser conexo.
ii) El grafo G es un árbol si y solamente si no tiene ciclos y, si
le añadiéramos una arista cualquiera, se formaría un ciclo.
Un grafo G es un árbol si y solamente si es conexo y
|A(G)| = |V (G)|−1. (|A(G)| es el número de
aristas y |V(G)| - numero de vértices)
Definición:
Un árbol raíz se llama árbol m-ario si todos los
vértices internos tienen a lo sumo, m hijos. El árbol se
llama árbol m-ario completo si todo vértice interno
tiene exactamente m hijos. Un árbol m-ario con m=2
se llama árbol binario.
Arbol m-ario
T1 T2 T3

T1 es un Arbol T2 es un Arbol Ternario T3 es un Arbol 5-ario


binario completo completo completo
T4

T4 no es un Arbol completo para m, ya que algunos vértices internos


tienen dos hijos, y otros tres.
Ejemplos

3-ario 2-ario o binario binario completo


Los árboles binarios son muy importantes, ya que existen métodos eficientes
para implementarlos y hacer búsquedas en ellos.
Además es posible reorganizar cualquier árbol con raíz como un árbol binario

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

- ^

A B / 3.5

C D
Árboles de expresión
Representan un orden de ejecución

+
*
+
*
+ -
A B * E

7 12 9
C D

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


 Árboles similares: Los que tienen la misma estructura (forma)

a
1

b e
2 5

3 4 6 7
c d f g

h i
8 9
 Árboles Equivalentes: Son los árboles similares y sus nodos
contienen la misma información.
 Árboles n-ario: Es un árbol ordenado cuyos nodos tiene N
subárboles, y donde cualquier número de subárboles puede ser
árboles vacíos
Árbol binario completo:
Es un árbol en el que todos sus nodos, excepto los del
ultimo nivel, tienen dos hijos.

Número de nodos en un árbol binario completo = 2 h –1 (en


el ejemplo h = 4,  15) esto nos ayuda a calcular el nivel de
árbol necesario para almacenar los datos de una aplicación.
Definición:
Un árbol (libre) T es una gráfica que satisface:
Si v y w son vértices en T, entonces existe un único
camino simple de v a w .
Árbol con raíz es un árbol en el cual un vértice
particular se designa como la raíz.
Arboles con raíz
 En muchas ocasiones conviene señalar un vértice especial en un árbol.
Lo que resulta es lo que llamaremos un árbol con raíz, donde la raíz,
por supuesto, es ese vértice especial que sirve de origen de
coordenadas. Seguro que el lector estará ya regocijándose con esta
peculiar terminología. Hablamos, primero, de arboles, pero los
dibujamos boca arriba, boca abajo, o apuntando en las direcciones más
diversas. Y ahora nos permitimos la licencia de hablar de raíz, que
normalmente situaremos en la parte superior de los esquemas (o, como
en el dibujo, a la izquierda del todo). !Curiosa fidelidad a la Botánica!
 Muchos de los algoritmos que veremos producen, de manera natural,
un árbol con raíz, pues en ellos es habitual tomar un vértice como
punto de partida, vértice que automáticamente queda etiquetado como
la raíz.
Árbol con raíz : Definición
 Sea A un conjunto y T una relación en A .

Se dice que T es un árbol si posee un vértice vo en A con la propiedad


de que existe una única trayectoria de vo hacia cualquier otro vértice
de A pero no existe una trayectoria de v o a vo.

Notación:
Se dice que T es un árbol con raíz y se denota (T, vo)

vo se denomina raíz del árbol T

Cualquier otro elemento de A es un vértice en T.

Observación:
T se representa por su Digrafo
Ejemplo v4 v9 v11

v5 v0 v3

v1
v8
v2
v6
v10
v7
diseño de un árbol con raíz
◦ Se ubica a la raíz vo , de la cual se dirá que esta en el nivel 0.

◦ Ninguna arista entra a vo pero pueden salir varias, que se trazan hacia

abajo. Los vértices terminales de las aristas que comienzan en vo son


los vértices del nivel 1
◦ Cada vértice del nivel 1 no tienen otras aristas que entren en él, pero

cada uno de estos vértices pueden tener varias aristas que salen de él.
Se trazan las aristas que salen del nivel 1 hacia abajo y terminan en
vértices que estarán en el nivel 2
◦ Y asi sucesivamente con cada nivel….

◦ .

52
Ejemplo
v0

v1 v2 v3

v4 v6 v9
v5 v8
v7

v10 v11
ARBOL Y NOTACIÓN (CADENA)
POLACAS
CADENA POLACA
 Polaco Lukasiewice implantó el árbol de una
expresión aritmética

 EXPRESION ARITMÉTICA:
tenemos dos:
operandos: letras minúsculas

operadores : ( )

/ * div mod
+ -
Generación de un árbol Expresión aritmética

1. a /
bcd operadores

+ -

info a b c d

a b c d
1 2 3 4
 Ejemplo :
+

/ /

+ *

* * a f a c d /

a b c d
1 2

(a* b+c*d)/a*f + (a c)/ d 1/2


Notación polaca
La evaluación se realiza de derecha a izquierda y de abajo
hacia arriba

También podría gustarte