Está en la página 1de 33

UNIDAD VI

ÁRBOLES Y GRAFOS
Programación II
CONTENIDO
 Definición
 Terminología
 Profundidad
 Ancestros
 Padre-hijo
 Hoja
 Grado
 Estructura
 Arboles binarios
 Conversión de árboles a arboles binarios
DEFINICIÓN: ÁRBOLES

 Árbol es el nombre que se le da a un grupo


de estructuras de datos.
 Un árbol es una estructura de datos no
lineal formada por un conjunto de nodos.
 Son estructuras jerárquicas, cada elemento
puede tener diferentes siguientes
elementos.
 El concepto de árbol implica una estructura
en la que los datos se organizan de modo
que los elementos de información están
relacionados entre sí a través de ramas
DEFINICIÓN: ÁRBOLES
 Un árbol esta compuesto por un conjunto
finito de elementos, llamados nodos y un
conjunto finito ramas , que conectan a los
nodos.
 En un árbol existe un nodo especial llamado
raíz.
 Así mismo, un nodo del que sale una rama,
recibe el nombre de nodo de bifurcación o
nodo rama y un nodo que no tiene ramas se
le llama nodo hoja.
Representación grafica de un
árbol
APLICACIÓN DE ÁRBOLES

 Los árboles tienen muchas aplicaciones, como, por


ejemplo:
✓ Organizar tablas de símbolos en compiladores
✓ Ordenar
✓ Buscar
✓ Solucionar juegos
✓ Probar teoremas
REPRESENTACION GRÁFICA DE UN ÁRBOL
TERMINOLOGÍA
Árboles, nodos y raíces
 Un árbol consta de nodos conectados
 Cada árbol cuenta con un nodo distinguido
llamado raíz.
 No puede haber rutas circulares en las
conexiones de un árbol, de tal forma que sólo
puede existir una ruta única desde cada nodo
hasta la raíz.
TERMINOLOGÍA
Raíz – Hoja - subárbol

 En un árbol, la raíz es el único nodo que no


tiene ancestros propios
 Una hoja es un nodo sin descendientes
propios.
 Un subárbol de un árbol es un nodo, junto
con todos sus descendientes.
Ancestros

 Los nodos que se encuentran en la


ruta que va desde un nodo a la raíz
reciben el nombre de ancestros del
nodo e incluyen a su padre, al
padre de su padre, etc., hasta
llegar a la raíz
Nodos Padres - Hijos

 Todos los nodos conectados a un nodo concreto


son hijos o bien el padre de dicho nodo.
 Si el nodo conectado se encuentra en la única
ruta a la raíz, dicho nodo recibe el nombre de
padre. Todos los nodos, salvo la raíz, tienen un
único padre.
 El resto de nodos conectados a un nodo
concreto son los hijos del nodo.
Ejemplo:
➢A es la raíz del árbol.
➢B es hijo de A.
➢A es padre de B.
➢B y C son hermanos.
➢I,E,J,K,G,L son hojas.
➢B, D, F, C, H son nodos
interiores.
•Los nodos de un árbol
pueden dividirse en niveles;
el nivel de un nodo es el
número de nodos en el
camino de él a la raíz.
Antecesores, descendientes y
subárboles
 Los nodos que se encuentran en la ruta que
va desde un nodo a la raíz reciben el nombre
de antecesores del nodo e incluyen a su
padre, al padre de su padre, etc., hasta
llegar a la raíz.
 El conjunto de nodos que incluyen a los hijos
del nodo, a los hijos del hijo, etc., reciben el
nombre de descendientes del nodo.
 Un nodo y sus descendientes forman un
subárbol enraizado a dicho nodo.
 Un nodo sin hijos recibe el nombre de hoja.
EJEMPLO

E es la raíz del árbol.

S1,S2,S3 son los hijos de E.

S1,D1 componen un subárbol


de la raíz.

D1,T1,T2,T3,D3,S3 son las


hojas del árbol.
HOJA - GRADO

 Un nodo sin hijos recibe


el nombre de hoja.
 Se denomina grado o
Grado de salida de un
nodo al número de hijos
que tiene.
Así el grado de un nodo
hoja es cero.
EJEMPLO:
El nodo con
etiqueta E tiene grado 3.
Caminos

Si n1,n2,...,nk es una sucesión de nodos


en un árbol tal que ni es el padre de
ni+1, entonces esta sucesión se llama
un camino del nodo ni al nodo nk. La
longitud de un camino es el número de
nodos menos uno, que haya en el
mismo.
Existe un camino de longitud cero de
cada nodo a sí mismo.

Ejemplos: E,S2,D2,T3 es un camino de E a T3 ya que E es padre de S2,éste


es padre de D2.
S1,E,S2 no es un camino de S1 a S2 ya que S1 no es padre de E.
Ancestros y descendientes

Si existe un camino del nodo a al


nodo b ,entonces a es un ancestro
de b y b es un descendiente de a.
EJEMPLO
1. Los ancestros de T2 son D2,S2 y E y
sus descendientes de D2 son
T1,T2 y T3
2. E,S2,D2,T3 es un camino
de E a T3 ya que E es padre de S2,éste
es padre de D2.
3. S1,E,S2 no es un camino
de S1 a S2 ya que S1 no es padre de E.
ALTURA

La altura de un nodo en un
árbol es la longitud del mayor
de los caminos del nodo a cada
hoja. La altura de un árbol es
la altura de la raíz.
 Ejemplo: La altura de S2 es 2
y la del árbol es 3
PROFUNDIDAD

 Laprofundidad de un nodo
es la longitud del único
camino de la raíz a ese
nodo.
 Ejemplo: la profundidad
de S2 es 1.
NIVELES

 Dado un árbol de
altura h se definen los
niveles 0...h de manera
que el nivel i está
compuesto por todos los
nodos de profundidad i.
ESTRUCTURA
ORDEN DE LOS NODOS

 Los hijos de un nodo usualmente están ordenados de


izquierda a derecha.
 Si Ignoramos el orden de los dos hijos, nos
referiremos a un árbol como un árbol no-ordenado.
 La ordenación izquierda-derecha de hermanos puede
ser extendida para comparar cualesquiera dos nodos
que no están relacionados por la relación ancestro-
descendiente.
 La regla a usar es que si n1 y n2 son hermanos
y n1 está a la izquierda de n2, entonces todos los
descendientes de n1 están a la izquierda de todos los
descendientes de n2.
ÀRBOLES BINARIOS

 Se definen como árboles de grado 2.

 Significa que cada nodo puede tener dos, uno


o ningún hijo.

 Al tratarse como mucho de dos hijos, cada uno


de ellos puede identificarse como hijo
izquierdo o hijo derecho.
LA ESTRUCTURA DE UN ÁRBOL
BINARIO
 Se construye con nodos.
 Cada nodo debe contener el campo dato
(datos a almacenar) y dos campos de tipo
puntero, uno al subárbol izquierdo y otro
al subárbol derecho, que se conocen
como puntero izquierdo y puntero
derecho respectivamente.
 Un valor NULL indica un árbol o un
subárbol vacío
La estructura de un árbol
binario
Ejemplo
 El árbol de raíz A contiene 8 nodos en una
profundidad de 4.
Ejemplo
 El árbol contiene 5 nodos y una profundidad 5.
 Este árbol es de forma especial, denominada árbol
degenerado, en el que existe un solo nodo hoja y cada
nodo no hoja sólo tiene un hijo. Un árbol degenerado es
equivalente a una lista enlazada.
CONVERSIÓN DE ÁRBOLES A
ARBOLES BINARIOS
 Los árboles binarios representan una de las estructuras
de datos más importantes por su dinamismo y la no
linealidad entre sus elementos.
CONVERSIÓN DE ÁRBOLES A
ARBOLES BINARIOS
Los pasos para lograr la conversión del árbol en
general a un árbol binario son los siguientes:
 Deben enlazarse los hijos de cada nodo en forma
horizontal, (los hermanos).
 Debe enlazarse en forma vertical el nodo padre
con el hijo que se encuentra más a la izquierda;
además debe eliminarse el vínculo de ese padre
con el resto de sus hijos.
 Debe rotarse el diagrama resultante
aproximadamente cuarenta y cinco grados hacia la
izquierda; para obtener el árbol binario
correspondiente
Ejemplo 1: Conversión de
árboles a arboles binarios
PASO 1: El árbol luego
La imagen es un árbol general de aplicar el paso 1
Ejemplo1 : Conversión de
árboles a arboles binarios
 Después de aplicar los pasos dos y tres, el Árbol Binario es el
siguiente:
Ejemplo 2: Conversión de
árboles a arboles binarios
PASO 1: El árbol luego
La imagen es un árbol general de aplicar el paso 1
Ejemplo 2 : Conversión de
árboles a arboles binarios
Después de aplicar los pasos dos y tres, el Árbol Binario resultante
de la conversión del Árbol General es el siguiente:
MUCHAS GRACIAS POR SU
ATENCIÒN

También podría gustarte