Está en la página 1de 3

Colas pilas y listas

Se pueden dividir a los programas en dos partes fundamentales que son:


Algoritmos
Estructuras de datos
Los datos fsicos se encuentran asociados a un mecanismo de datos, que controla la
forma en la que la informacin puede ser accedida por los programas, existen
principalmente cuatro tipos de estos mecanismos.
Que son :
Las colas
Las pilas

Las listas

Los roles
!ada uno de los m"todos mencionados con anterioridad proporciona una solucin a
cada tipo de prolema. !ada uno un dispositivo que reali#a una operacin de
almacenamiento $ de recuperacin de los datos dados.
%odos ellos tienen dos elementos en com&n, como es :
El almacenamiento de datos

La recuperacin de datos
Colas (Queue)
Las colas no son ms que listas lineales de informacin a las cuales se accede de un
modo determinado siendo el de tipo '()(*+ lo que quiere decir que el primer dato en
entrar es tami"n el primer dato en salir, en las colas no se permite el acceso aleatorio a
ning&n elemento concreto'como e,emplo podemos imaginar la cola de un
supermercado, la de un cine,.....+, las inserciones para las colas se -acen al final de la
lista.
.a$ que tener en cuenta que las operaciones de recuperacin es destructiva 'elimina el
elemento+ de la cola, si no es almacenado en otro lugar se destru$e. Las colas se utili#an
principalmente en las simulaciones, planificacin de sucesos, $ los procesos de entrada
salida con uffer.
Las colas circulares: /o son mas que una variante de las anteriores $ su diferencia es
que mientras que en las colas lineales es necesario parar el programa cuando se alcan#a
el limite del arra$ en las circulares, la cola est llena solo cuando el ndice de
almacenamiento $ el ndice de recuperacin son iguales, en otro caso la cola aun tiene
espacio para almacenar ms datos. Su utili#acin ms com&n es en los sistemas
operativos en los que la cola circular mantiene la informacin que se lee de arc-ivo $
que se escrie en arc-ivo, aplicaciones de tiempo real, etc...
Pilas
0na pila es lo contrario de una cola, $a que su acceso es de tipo L)(*, el &ltimo que
entra es el primero que sale, imaginar un montn de liros unos encima de otros $ que
para acceder al segundo por arria primero es necesario coger el primero, su utili#acin
principal es para el soft1are de sistemas, compiladores, interpretes.
Las dos operaciones sicas, son las de almacenamiento $ la de recuperacin, que se
llaman pus- 'la de almacenamiento + $ pop 'la de recuperacin+, para implementar una
pila se necesitan las dos operaciones mencionadas con anterioridad $ una #ona de
memoria para utili#arla como pila, se puede utili#ar un arra$, o una #ona asignada
mediante asignacin dinmica de memoria. Al igual que en las colas, la funcin de
recuperacin elimina el valor de la lista, $ si este no se almacena en alg&n lugar, este se
destru$e.
La variale top es el ndice de la siguiente posicin lire de la pila. !uando se
implementan estas funciones, lo ms importante es evitar el desordamiento de la pila
por los dos extremos, si top 23 la pila esta vaca $ si top 4que la ultima posicin de
almacenamiento la pila est llena.
Listas enlazadas
Al contrario que las pilas $ las colas las listas enla#adas pueden acceder a una #ona de
memoria de forma aleatoria, $a que cada tro#o de informacin lleva un enlace al
siguiente elemento de la cadena. 0na lista enla#ada requiere una estructura de datos
comple,a, al contrario que las colas o las pilas, que pueden operar con elementos
simples o comple,os, adems una operacin de recuperacin en una lista enla#ada no
elimina ni destru$e el elemento de la lista. 5ara poder eliminar un elemento de una lista
es necesario utili#ar una operacin especifica de eliminacin.
Las listas enla#adas se utili#an principalmente para dos propsitos, crear arra$s de un
tama6o desconocido en memoria, $ los arc-ivos de almacenamiento en disco para ases
de datos, las listas enla#adas permiten insertar $ eliminar nuevos elementos.
Las listas pueden ser simplemente enla#adas o dolemente enla#adas, las simplemente
enla#adas contienen un enlace al elemento siguiente, las dolemente enla#adas tanto al
siguiente elemento como al elemento anterior del la lista.
Listas simplemente enla#adas
0na lista simplemente enla#ada necesita que cada elemento contenga un enlace con el
siguiente elemento, cada elemento consiste en una estructura de campos de informacin
a punteros de enlace.
Existen dos formas de construir una lista simplemente enla#ada , la primera es a6adir un
nuevo elemento al principio o al final de la lista, la otra a6ade los elementos en un punto
especifico de la lista.
Si la lista $a esta ordenada, es conveniente mantenerla as, insertando los nuevos
elementos en su lugar apropiado para lo cual se explora la lista de forma secuencial
-asta encontrar el lugar apropiado, la nueva direccin se inserta en ese punto $ los
enlaces se vuelven a colocar como sea necesario.
Se pueden dar tres posiles situaciones al insertar un elemento en una lista enla#ada.
5rimero : El elemento se puede convertir en el primer elemento.
Segundo : 5uede ser insertado entre otros dos elementos.
%ercero: Se puede convertir en el ultimo elemento de la lista.
%ener en cuenta que al camiar el primer elemento -a$ que actuali#ar el punto de
entrada en alguna parte del programa, tami"n se puede utili#ar un centinela, que no es
ms que el primer elemento no camia nunca con un valor especial, con lo que siempre
ser el primer elemento de la lista pero se necesita una posicin ms de memoria. 5ara
recuperar un elemento de la lista es como seguir una cadena, una rutina asada en el
campo nomre. 5ara orrar un elemento al igual que para insertar un elemento se
pueden dar los mismos tres casos, si se orra el primer elemento de la lista el puntero
previo -a de -acerse nulo, $ la funcin tiene que devolver un puntero al comien#o de la
lista para que cuando se orre el primer elemento de la lista, el programa cono#ca la
direccin del nuevo primer elemento de la lista. Las listas simplemente enla#adas solo
se pueden recorrer en sentido ascendente $ no en sentido descendente, para lo cual se
pueden utili#ar las listas dolemente enla#adas.
Listas dolemente enla#adas.
Las listas dolemente enla#adas consisten en datos $ enlaces tanto al elemento siguiente
como al elemento anterior. !on lo que se consiguen dos grandes venta,as, primero la
lista se puede leer en cualquier direccin, la segunda es que se pueden leer los enlaces
-acia delante como -acia atrs, con lo que si un enlace resulta no valido se puede
reconstruir utili#ando el otro enlace.
!omo en las listas simplemente enla#adas, las dolemente enla#adas pueden contener
una funcin que almacene cada elemento en una posicin especifica de la lista a medida
que esta se constru$e, en lugar de colocar cada elemento al final de la lista.

También podría gustarte