Unidad 4 Estructura de Datos

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 6

4.1.1 CONCEPTO DE RBOL.

Los rboles son estructuras dinmicas no lineales, hasta ahora solo se han manejado
estructuras estticas y dinmicas lineales, es decir a cada elemento de la estructura solo le sigue
otro, en el caso de los rboles a estos les puede seguir uno o mas elementos, es decir que un
elemento de la estructura puede apuntar a varios, adems de esto son dinmicos ya que se pueden
crear elementos que conformen el rbol cuando se requiera y en cualquier parte del programa.
Estructuras estticas Estructuras dinmicas
Arreglos Listas
Pilas rboles
Colas
Estructuras lineales Estructuras no lineales
Arreglos rboles
Pilas rboles
Colas
Listas
4.1.2 CLA!"!CAC!#N DE ARBOLE.
r$ol de $%s&ueda 'er(ectamente $alanceado.
efinici!n" Para todo nodo, la cantidad de nodos de su subrbol i#quierdo difiere como
m$imo en % de la cantidad de nodos del subrbol derecho.
&n el peor caso, la b'squeda necesita ()log n*.
La inserci!n puede necesitar reorgani#ar todo el rbol, ()n*.
r$ol $alanceado ) A*L +Adelson,*els-ii . Landis/.
&s un rbol binario de b'squeda, con una condici!n de balanceo ms d+bil que hace que
no sea tan costoso el proceso de balancear un rbol.
efinici!n" Para todo nodo, la altura de sus subrboles difiere como m$imo en
%. ),upondremos que la altura del rbol vac-o es .%.*
r$oles Binarios
/n rbol binario, es aquel que tiene como m$imo 0 descendientes, es decir cada uno de los nodos del
rbol tiene un m$imo de 0 hijos1 adems si es binario de b'squeda se define de manera formal como"
2Para todo nodo 3 del rbol debe cumplirse que todos los valores de los nodos del subrbol i#quierdo de 3
sern menores o iguales al valor del nodo 3. e forma similar, todos los valores de los nodos del subrbol
derecho de 3 deben ser mayores o iguales al valor del nodo 3 4.
Por lo mismo se pueden reali#ar las operaciones de b'squeda, inserci!n y eliminaci!n, de manera ms
eficiente en este tipo de rbol.
Por ejemplo si tenemos los siguientes valores para insertar en un rbol binario de b'squeda"
56.%7.89.:0..69.08
4.1.0 OPERAC!ONE B!CA OBRE ARBOLE B!NAR!O.
!NERCC!#N EN 1N RBOL B!NAR!O DE B231EDA4
%. ebe compararse la clave a insertar con la ra-# del rbol. ,i es mayor, debe avan#arse hacia el
subrbol derecho. ,i es menor, debe avan#arse hac-a el subrbol i#quierdo.
0. ;epetir sucesivamente el paso % hasta que se cumpla alguna de las siguientes condiciones"
%. &l subrbol derecho es igual a vac-o, o el subrbol i#quierdo es igual a vac-o, en cuyo caso se procede
a insertar el elemento en el lugar que le corresponde.
0. La clave que quiere insertarse es igual a la ra-# del rbol, en cuyo caso no se reali#a la inserci!n.
B231EDA
&n el caso de la b'squeda es este tipo de rbol, por l!gica, ser movi+ndose en el rbol,
dependiendo si el elemento a buscar es mayor o menor que la ra-#, hasta que se encuentre o se
determine que no esta en el rbol.
Por ejemplo si del rbol formado anteriormente buscamos el valor 46
Comparar-amos el 45 con el 04 que es la ra-#, como 45 es mayor nos mover-amos al subrbol
derecho.
Ahora nuestra ra-# es 65, comparamos 45 con 65 y vemos que es menor que este, por lo que nos
movemos hac-a el subrbol i#quierdo.
e esta forma encontramos que 45 se encuentra en el rbol.
BORRADO EN 1N RBOL B!NAR!O DE B231EDA
La operaci!n de borrado es un poco ms complicada que la de inserci!n.
%. ,i el elemento a borrar es terminal u hoja, simplemente se suprime.
0.. ,i el elemento a eliminar tiene un solo descendiente, entonces tiene que sustituirse por ese descendiente.
5.. ,i el elemento a borrar tiene dos descendientes, entonces se tiene que sustituir por el nodo que se
encuentra ms a la derecha del subrbol i#quierdo o por el nodo que se encuentra ms a la i#quierda del
subrbol derecho.
Antes de hacer la eliminaci!n, tenemos que buscar el elemento.
4.1.4 APL!CAC!ONE
/n rbol binario es una estructura de datos 'til cuando se trata de hacer modelos de procesos en donde
se requiere tomar decisiones en uno de dos sentidos en cada parte del proceso. Por ejemplo,
supongamos que tenemos un arreglo en donde queremos encontrar todos los duplicados. &sta situaci!n
es bastante 'til en el manejo de las bases de datos, para evitar un problema que se llama redundancia.
/na manera de encontrar los elementos duplicados en un arreglo es recorrer todo el arreglo y comparar
con cada uno de los elementos del arreglo. &sto implica que si el arreglo tiene elementos, se deben
hacer comparaciones, claro, no es mucho problema si es un n'mero peque<o, pero el problema se
va complicando ms a medida que aumenta.
,i usamos un rbol binario, el n'mero de comparaciones se reduce bastante, veamos c!mo.
&l primer n'mero del arreglo se coloca en la ra-# del rbol )como en este ejemplo siempre vamos a
trabajar con rboles binarios, simplemente diremos rbol, para referirnos a un rbol binario* con sus
subrboles i#quierdo y derecho vac-os. Luego, cada elemento del arreglo se compara son la informaci!n
del nodo ra-# y se crean los nuevos hijos con el siguiente criterio"
,i el elemento del arreglo es igual que la informaci!n del nodo ra-#, entonces notificar duplicidad.
,i el elemento del arreglo es menor que la informaci!n del nodo ra-#, entonces se crea un hijo
i#quierdo.
,i el elemento del arreglo es mayor que la informaci!n del nodo ra-#, entonces se crea un hijo
derecho.
/na ve# que ya est creado el rbol, se pueden buscar los elementos repetidos. ,i $ el elemento buscado,
se debe recorrer el rbol del siguiente modo"
,ea = la informaci!n del nodo actual p. ,i entonces cambiar el nodo actual a right)p*, en caso
contrario, en caso de que informar una ocurrencia duplicada y en caso de que cambiar el nodo
actual a left)p*.
Para saber el contenido de todos los nodos en un rbol es necesario recorrer el rbol. &sto es debido a
que solo tenemos conocimiento del contenido de la direcci!n de un nodo a la ve#. Al recorrer el rbol es
necesario tener la direcci!n de cada nodo, no necesariamente todos al mismo tiempo, de hecho
normalmente se tiene la direcci!n de uno o dos nodos a la ve#1 de manera que cuando se tiene la
direcci!n de un nodo, se dice que se7isita ese nodo.
Aunque hay un orden preestablecido )la enumeraci!n de los nodos* no siempre es bueno recorrer el rbol
en ese orden, porque el manejo de los apuntadores se vuelve ms complejo. &n su lugar se han adoptado
tres criterios principales para recorrer un rbol binario, sin que de omita cualquier otro criterio diferente.
4.1.6 ARBOLE BALANCEADO A*L.
La estructura de datos ms vieja y mejor conocida para rboles balanceados es el rbol A>L. ,u
propiedad es que la altura de los subrboles de cada nodo difiere en no ms de%. Para mantenerlo
balanceado es necesario saber la altura o la diferencia en alturas de todos los subrboles y eso provoca
que tengamos que guardar informaci!n adicional en cada nodo, un contador de la diferencia entre las
alturas de sus dos subrboles.
Los rboles A>L fueron nombrados por sus desarrolladores Adel? son.>el?s=ii y Landis.
Probablemente la principal caracter-stica de los rboles A>L es su e$celente tiempo de ejecuci!n para las
diferentes operaciones )b'squedas, altas y bajas*.
&n las siguientes dos figuras la primera es un rbol A>L y la segunda no lo es ya que los subrboles del
nodo ?L? difieren en altura por ms de %.
rbol A>L" &l rbol a es un rbol A>L, mientras que el rbol b no lo es.
4.2 318 ON LO 9RA"O

&mpe#aremos por una definici!n informal. Los grafos son un conjunto de puntos, de los cuales alg'n par
de ellos est conectado por unas l-neas. ,i estas l-neas son flechas, hablaremos de grafo dirigido
)digrafo*, mientras que si son simples l-neas estamos ante un grafo no dirigido.
@s formalmente se pueden definir como un conjunto de v+rtices y un conjunto de aristas. Cada arista es
un par )u,v*, donde u y v pertenecen al conjunto de v+rtices. ,i este par es ordenado el grafo es dirigido.
4.2.1 TER:!NOLO9;A DE 9RA"O.
La terminolog-a que manejaremos regularmente para el uso de grafos es la siguiente"
CA:!NO. &s una secuencia de v+rtices >%, >0, >5, ... , >n, tal que cada uno de estos >%.Agt>0,
>0.Agt>5, >%.Agt>5.
LON9!T1D DE CA:!NO. &s el n'mero de arcos en ese camino.
CA:!NO !:PLE. &s cuando todos sus v+rtices, e$cepto tal ve# el primero y el 'ltimo son
distintos.
C!CLO !:PLE. &s un camino simple de longitud por lo menos de uno que empie#a y termina en
el mismo v+rtice.
AR!TA PARALELA. &s cuando hay ms de una arista con un v+rtice inicial y uno terminal
dados.
9RA"O C!CL!CO. ,e dice que un grafo es c-clico cuando contiene por lo menos un ciclo.
9RA"O AC!CL!CO. ,e dice que un grafo es acicl-co cuando no contiene ciclos.
9RA"O CONE<O. /n grafo B es cone$o, si y solo si e$iste un camino simple en cualesquiera dos
nodos de B.
9RA"O CO:PLETO ) "1ERTE:ENTE CONE<O./n grafo dirigido B es completo si para cada
par de nodos )>,C* e$iste un camino de > a C y de C a > )for#osamente tendrn que cumplirse ambas
condiciones*, es decir que cada nodo B es adyacente a todos los dems nodos de B.
9RA"O 1N!LATERAL:ENTE CONE<O./n grafo B es unilateralmente cone$o si para cada par
de nodos )>,C* de B hay un camino de > a C o un camino de C a >.
9RA"O PEADO ) ET!31ETADO. /n grafo es pesado cuando sus aristas contienen datos
)etiquetas*. /na etiqueta puede ser un nombre, costo ! un valor de cualquier tipo de dato. 3ambi+n a este
grafo se le denomina red de actividades, y el n'mero asociado al arco se le denomina factor de peso.
*ERT!CE AD=ACENTE. /n nodo o v+rtice > es adyacente al nodo C si e$iste un arco de m a n.
9RADO DE AL!DA.&l grado de salida de un nodo > de un grafo B, es el n'mero de arcos o
aristas que empie#an en >.
9RADO DE ENTRADA.&l grado de entrada de un nodo > de un grafo B, es el n'mero de aristas
que terminan en >.
NODO "1ENTE.,e le llama as- a los nodos que tienen grado de salida positivo y un grado de
entrada nulo.
NODO 1:!DERO.,e le llama sumidero al nodo que tiene grado de salida nulo y un grado de
entrada positivo.


4.2.2 OPERAC!ONE B!CA DE LO 9RA"O
&n los grafos, como en todas las estructuras de datos, las dos operaciones bsicas son insertar y borrar.
&n este caso, cada una de ellas se desdobla en dos, para insertarDeliminar v+rtices e insertarDeliminar
aristas.
!nsertar 7>rtice
La operaci!n de inserci!n de un nuevo v+rtice es una operaci!n muy sencilla, 'nicamente consiste en
a<adir una nueva entrada en la tabla de v+rtices )estructura de datos que almacena los v+rtices* para el
nuevo nodo. A partir de ese momento el grafo tendr un v+rtice ms, inicialmente aislado, ya que ninguna
arista llegar a +l.
!nsertar arista
&sta operaci!n es tambi+n muy sencilla. Cuando se inserte una nueva arista en el grafo, habr que a<adir
un nuevo nodo a la lista de adyacencia )lista que almacena los nodos a los que un v+rtice puede acceder
mediante una arista* del nodo origen, as- si se a<ade la arista )A,C*, se deber incluir en la lista de
adyacencia de A el v+rtice C como nuevo destino.
Eliminar 7>rtice
&sta operaci!n es inversa a la inserci!n de v+rtice. &n este caso el procedimiento a reali#ar es la
eliminaci!n de la tabla de v+rtices del v+rtice en s-. A continuaci!n habr que eliminar las aristas que
tuviesen al v+rtice borrado como origen o destino.
Eliminar arista
@ediante esta operaci!n se borra un arco del grafo. Para llevar a cabo esta acci!n es necesario eliminar
de la lista de adyacencia del nodo origen el nodo correspondiente al nodo destino.
Otras o'eraciones
Las operaciones adicionales que puede incluir un grafo son muy variadas. Adems de las clsicas de
b'squeda de un elemento o recorrido del grafo, tambi+n podemos encontrarnos con ejecuci!n de
algoritmos que busquen caminos ms cortos entre dos v+rtices, o recorridos del grafo que ejecuten alguna
operaci!n sobre todos los v+rtices visitados, por citar algunas operaciones de las ms usuales.

También podría gustarte