Está en la página 1de 20

4.1. rboles.

Los arboles representan las estructuras no lineales y dinmicas de datos


ms importantes en computacin . Dinmicas porque las estructuras de
rbol pueden cambiar durante la ejecucin de un programa. No lineales,
puesto que a cada elemento del rbol pueden seguirle varios elementos.
Los arboles pueden ser construidos con estructuras estticas y dinmicas.
Las estticas son arreglos, registros y conjuntos, mientras que las
dinmicas estn representadas por listas.
Los arboles tienen una gran variedad de aplicaciones. Por ejemplo, se
pueden utilizar para representar frmulas matemticas, para organizar
adecuadamente la informacin, para construir un rbol genealgico, para
el anlisis de circuitos elctricos y para numerar los captulos y secciones
de un libro.

4.1.1.- Definicin
En ciencias de la informtica, un rbol es una
estructura de datos ampliamente usada que imita la
forma de un rbol (un conjunto de nodos
conectados).
RAIZ O NODO PADRE: El
nodo principal del cual
salen los hijos.
HIJOS: Son todos los
que descienden de un
nodo Padre.

Hojas: Es un nodo que


no tiene hijos.

4.1.2 Representacin en
memoria de rboles
Hay dos formas tradicionales de representar un rbol binario en
memoria:
Por medio de datos tipo punteros tambin conocidos como variables
dinmicas o listas.
Por medio de arreglos.
Los nodos del rbol binario sern representados como registros que
contendrn como mnimo tres campos. En un campo se almacenar la
informacin del nodo. Los dos restantes se utilizarn para apuntar al subrbol
izquierdo y derecho del subrbol en cuestin. Cada nodo se representa
grficamente de la siguiente manera:

IZQ

DATO DER

El algoritmo
de creacin
de un rbol
binario es el
siguiente:

Procedimiento crear(q:nodo)
Inicio
mensaje("Rama izquierda?")
lee(respuesta)
si respuesta = "si" entonces
new(p)
q(li) <-- nil
crear(p)
en caso contrario
q(li) <-- nil
mensaje("Rama derecha?")
lee(respuesta) si respuesta="si" entonces
new(p)
q(ld)<--p
crear(p)
en caso contrario
q(ld) <--nil
fin
INICIO
new(p)
raiz<--p
crear(p)
FIN

4.1.2 Representacin en
memoria de rboles
Los rboles binarios tambin pueden ser almacenados como una
estructura de datos implcita en vectores, y si el rbol es un rbol binario
completo, este mtodo no desaprovecha el espacio en memoria.
Tomaremos como notacin la siguiente:
Si un nodo tiene un ndice i, sus hijos se encuentran en ndices 2i + 1 y 2i +
2, mientras que sus padres (si los tiene) se encuentra en el ndice
(partiendo de que la raz tenga ndice cero). Este mtodo tiene como
ventajas el tener almacenados los datos de forma ms compacta y por
tener una forma ms rpida y eficiente de localizar los datos en particular
durante un Preoden transversal. Sin embargo, desperdicia mucho espacio
en memoria.

4.1.2.1 rboles generales


En un rbol general cada nodo puede poseer un nmero
indeterminado de hijos. La implementacin de los nodos en
este caso se realiza de la siguiente manera: como no se sabe de
antemano cuantos hijos tiene un nodo en particular se utilizan
dos referencias, una a su primer hijo y otra a su hermano ms
cercano. La raz del rbol necesariamente tiene la referencia a
su hermano como null.

Ntese que todo rbol general puede representarse


como un rbol binario, con la salvedad que el hijo
derecho de la raz es siempre null. Si se permite
que la raz del rbol tenga hermanos, lo que se
conoce como bosque, entonces se tiene que el
conjunto de los bosques generales es isomorfo al
conjunto de los rboles binarios. En efecto, las
propiedades vistas en los rboles binarios se siguen
cumpliendo en los rboles generales.

Un rbol de bsqueda binaria es una estructura apropiada para muchas de las


aplicaciones que se han discutido anteriormente con listas. La ventaja especial de
utilizar un rbol es que se facilita la bsqueda.
Un rbol binario de bsqueda es aquel en el que el hijo de la izquierda (si existe) de
cualquier nodo contiene un valor ms pequeo que el nodo padre, y el hijo de la
derecha (si existe) contiene un valor ms grande que el nodo padre.

Un ejemplo de rbol binario de bsqueda es el siguiente:

4.1.3 Recorridos de un rbol binario.


Nos sirve para realizar la obtencin de la notacin Polaca,
para pasarlo a la unidad Aritmtica Lgica para poder
interpretar operaciones.
4.1.3.1 Preorden

RAIZ

IZQUIERDO

DERECHO

RAIZ

DERECHO

4.1.3.2 Inorden

IZQUIERDO
4.1.3.3 Postorden:

IZQUIERDO

DERECHO

RAIZ

Preorden: ABDGEHICFJK
Inorden: GDBHEIACJKF
Postorden: GDHIEBKJFCA

Un grafo es la unidad abstracta que comprende el conjunto


de grafas de una letra. La palabra tiene origen griego y
significa dibujo o imagen.
Para las matemticas y las ciencias de la computacin, un
grafo es el principal objeto de estudio de la teora de
grafos. De esta forma, un grafo se representa grficamente
como un conjunto de puntos (llamados vrtices o nodos),
unidos por lneas (aristas). Los grafos permiten estudiar las
interrelaciones entre unidades que se encuentran en
interaccin.

La terminologa que manejaremos regularmente


para el uso de grafos es la siguiente:
CAMINO. Es una secuencia de vrtices V1, V2,
V3, ... , Vn, tal que cada uno de estos V1-&gtV2,
V2-&gtV3, V1-&gtV3.
LONGITUD DE CAMINO. Es el nmero de arcos
en ese camino.
CAMINO SIMPLE. Es cuando todos sus vrtices,
excepto tal vez el primero y el ltimo son
distintos.
CICLO SIMPLE. Es un camino simple de longitud
por lo menos de uno que empieza y termina en el
mismo vrtice.
ARISTAS PARALELAS. Es cuando hay ms de
una arista con un vrtice inicial y uno terminal
dados.

GRAFO CICLICO. Se dice que un grafo es


cclico cuando contiene por lo menos un ciclo.
GRAFO ACICLICO. Se dice que un grafo es
a cclico cuando no contiene ciclos.
GRAFO CONEXO. Un grafo G es conexo, si
y solo si existe un camino simple en
cualesquiera dos nodos de G.
GRAFO COMPLETO FUERTEMENTE CONEXO.
Un grafo dirigido G es completo si para cada par de
nodos (V,W) existe un camino de V a W y de W a V
(forzosamente tendrn que cumplirse ambas
condiciones), es decir que cada nodo G es
adyacente a todos los dems nodos de G.

GRADO DE SALIDA. El grado de salida de un nodo V de un


grafo G, es el nmero de arcos o aristas que empiezan en V.
GRADO DE ENTRADA. El grado de entrada de un nodo V de
un grafo G, es el nmero de aristas que terminan en V.
NODO FUENTE. Se le llama as a los nodos que tienen grado
de salida positivo y un grado de entrada nulo.
NODO SUMIDERO. Se le llama sumidero al nodo que tiene
grado de salida nulo y un grado de entrada positivo.

GRAFO UNILATERALMENTE CONEXO. Un grafo G es


unilateralmente conexo si para cada par de nodos (V,W) de
G hay un camino de V a W o un camino de W a V.
GRAFO PESADO ETIQUETADO. Un grafo es pesado
cuando sus aristas contienen datos (etiquetas). Una etiqueta
puede ser un nombre, costo un valor de cualquier tipo de
dato. Tambin a este grafo se le denomina red de
actividades, y el nmero asociado al arco se le denomina

factor de peso.

VERTICE ADYACENTE. Un nodo o vrtice V es adyacente al


nodo W si existe un arco de m a n.

Grafos simples
Un grafo es simple si a lo sumo slo 1
arista une dos vrtices cualesquiera. Esto
es equivalente a decir que una arista
cualquiera es la nica que une dos vrtices
especficos.
Un grafo que no es simple se denomina
Multigrfica o Grafo mltiple.

Grafos conexos
Un grafo es conexo si cada par de
vrtices est conectado por un camino; es
decir, si para cualquier par de vrtices (a,
b), existe al menos un camino posible desde
a hacia b.
Un grafo es fuertemente conexo si cada par
de vrtices est conectado por al menos dos
caminos disjuntos; es decir, es conexo y no
existe un vrtice tal que al sacarlo el grafo
resultante sea disconexo.

4.2.2 Tipos de Grafos


Grafos completos
Un grafo es completo si existen aristas uniendo todos
los pares posibles de vrtices. Es decir, todo par de vrtices
(a, b) debe tener una arista e que los une.
El conjunto de los grafos completos es denominado
usualmente , siendo el grafo completo de n vrtices.
es decir, grafo completo de n vrtices tiene
exactamente aristas.
La representacin grfica de los como los vrtices de
un polgono regular da cuenta de su peculiar estructura.

4.2.2 Tipos de Grafos


Grafos bipartitos
Un grafo G es bipartito si puede
expresarse como (es decir, sus vrtices
son la unin de dos grupos de vrtices),
bajo las siguientes condiciones:
V1 y V2 son disjuntos y no vacos.
Cada arista de A une un vrtice de V1
con uno de V2.
No existen aristas uniendo dos
elementos de V1; anlogamente para V2.

Existen diferentes formas de almacenar grafos en


una computadora. La estructura de datos usada
depende de las caractersticas del grafo y el
algoritmo usado para manipularlo. Entre las
estructuras ms sencillas y usadas se encuentran las
listas y las matrices, aunque frecuentemente se usa
una combinacin de ambas. Las listas son preferidas
en grafos dispersos porque tienen un eficiente uso
de la memoria. Por otro lado, las matrices proveen
acceso rpido, pero pueden consumir grandes
cantidades de memoria.

También podría gustarte