miércoles, 6 de julio de 2011

LISTAS, COLAS Y PILAS

LISTA
En Ciencias de la Computación, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior. El principal beneficio de las listas enlazadas respecto a los array convencionales es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento.
Una lista enlazada es un tipo de dato auto-referenciado porque contienen un puntero o link a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminación de nodos en cualquier punto de la lista en tiempo constante (suponiendo que dicho punto está previamente identificado o localizado), pero no permiten un acceso aleatorio. Existen diferentes tipos de listas enlazadas: Lista Enlazadas Simples, Listas Doblemente Enlazadas, Listas Enlazadas Circulares y Listas Enlazadas Doblemente Circulares.
Las listas enlazadas pueden ser implementadas en muchos lenguajes. Lenguajes tales como Lisp y Scheme tiene estructuras de datos ya construidas, junto con operaciones para acceder a las listas enlazadas. Lenguajes imperativos u orientados a objetos tales como C o C++ y Java, respectivamente, disponen de referencias para crear listas enlazadas.

COLAS
Los elementos se atienden en el orden en que llegaron; es decir el primer elemento en entrar en una cola es el primero en salir. Se ingresa por la cabeza y se añaden al final de la cola. (FIFO = first in first out;  primero en entrar primero en salir).
Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación (entre otros), dónde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazadas.
Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de espera.




PILAS
Permiten insertar o eliminar elementos por un solo extremode la lista llamado cima(top). Este concepto desde el punto de vista informatico es similar al concepto de pila en la vida real.
Ejemplos: pilas de platos o pilas de libros.
Las oprecaiones basicas que se asocian con una pila son: 
  • Crear o iniciar (inicializa una pila vacia)
  • Pila vacia (determina si una pila esta vacia o no)
  • Pila llena (determina si la pila esta llena)
  • Push (inserta un elemento en la cima de la pila)
  • Pop (elimina el ultimo elemento de la pila)
En teoria el tamaño de la pila es ilimitado; sin embargo en la practica existe la limitacion fisica de la memoria.



-Bibliografia
http://es.wikipedia.org/wiki/Lista_%28inform%C3%A1tica%29
http://www.slideshare.net/juliocanelon/pilas-y-colas

1 comentario: