Sei sulla pagina 1di 3

Pilas.

La estructura de datos tipo pila consiste en un conjunto ordenado de elementos iguales de forma que nicamente es posible aadir o suprimir elementos en una posicin fija llamada cabeza de la pila. La estructura pila es de tipo LIFO (Last In, First Out), ya que el ultimo elemento introducido en la pila ser el primer elemento que se suprimir. La estructura de tipo pila que disearemos ser un registro que constara de dos campos: un campo reservado para los elementos de la pila que almacenaremos en un vector y el otro para indicar la cabeza de la pila. Operaciones Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen aadir ms de uso habitual. Crear: se crea la pila vaca. (constructor) Tamao: regresa el numero de elementos de la pila. (size) Apilar: se aade un elemento a la pila.(push) Desapilar: se elimina el elemento frontal de la pila.(pop) Cima: devuelve el elemento que esta en la cima de la pila. (top o peek) Vaca: devuelve cierto si la pila est vaca o falso en caso contrario (empty).

Por analoga con objetos cotidianos, una operacin apilar equivaldra a colocar un plato sobre una pila de platos, y una operacin retirar a retirarlo. Las pilas suelen emplearse en los siguientes contextos:

Evaluacin de expresiones en notacin postfija (notacin polaca inversa). Reconocedores sintcticos de lenguajes independientes del contexto Implementacin de recursividad.

Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia. Por ejemplo, la gestin de ventanas en Windows (cuando cerramos una ventana siempre recuperamos la que tenamos detrs). Otro ejemplo es la evaluacin general de cualquier expresin matemtica para evitar tener que calcular el nmero de variables temporales que hacen falta. Por ejemplo: 3 + 4 * (8 2 * 5)

Colas. La estructura de datos tipo cola consiste en un conjunto ordenado de elementos del mismo tipo en el que solo podemos introducir elementos en la cola por un extremo (Cola.Poner) y sacarlos por el extremo contrario (Cola.Sacar). La estructura cola es del tipo FIFO (First In, First Out), es decir, el primer elemento que ha entrado en la cola sera el primero en salir. Las colas se utilizan en sistemas informticos, transportes y operaciones de investigacin (entre otros), dnde 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 La particularidad de una estructura de datos de cola es el hecho de que slo podemos acceder al primer y al ltimo elemento de la estructura. As mismo, los elementos slo se pueden eliminar por el principio y slo se pueden aadir por el final de la cola.

Ejemplos de colas en la vida real seran: personas comprando en un supermercado, esperando para entrar a ver un partido de bisbol, esperando en el cine para ver una pelcula, una pequea peluquera, etc. La idea esencial es que son todos lneas de espera. Definiremos una serie de operaciones que es posible realizar sobre una variable de tipo cola como son:

InicializarCola: crear una cola vacia. ColaVacia: averiguar si una cola esta vacia. ColaLlena: averiguar si una cola esta llena. PonerCola: aadir un elemento en la cola. SacarCola: sacar un elemento de la cola.

Listas enlazadas En Ciencias de la Computacin, 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, enlaces o punteros (punteros) al nodo anterior o posterior. El principal beneficio de las listas enlazadas respecto a los vectores 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 autoreferenciado porque contienen un puntero o enlace (en ingls link, del mismo significado) a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminacin 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.

Potrebbero piacerti anche