Está en la página 1de 2

PILA

Definición.
Es una lista ordenada o estructura de datos que permite almacenar y recuperar datos, siendo el modo de
acceso a sus elementos de tipo LIFO (del inglés Last In, First Out, «último en entrar, primero en salir»).
OPERACIONES EN PILAS: NEW, PUSH, POP, TOP, ISEMPTY
Habitualmente, junto a las dos operaciones básicas de apilar y desapilar (push, pop), las pilas puede
implementar otra serie de funciones:
● Crear (constructor): crea la pila vacía.
● Tamaño (size): regresa el número de elementos de la pila.
● Apilar (push): añade un elemento a la pila.
● Desapilar (pop): lee y retira el elemento superior de la pila.
● Leer último (top o peek): lee el elemento superior de la pila sin retirarlo.
● Vacía (empty): devuelve cierto si la pila está sin elementos o falso en caso de que contenga alguno.
Aplicación de Pilas.
Aplicaciones directas:
● Historial de páginas visitadas en un browser de web.
● Secuencia de “Deshacer” en un editor de textos.
Aplicaciones indirectas:
● Estructuras de datos auxiliares para algoritmos
● Componentes de otras estructuras de datos.
Pilas usando Arreglos.

Pila como Lista enlazada.


Apilar usando una lista enlazada significa que estamos implementando la pila usando la lista enlazada en
lugar de usar arreglos. A través de una lista enlazada, podemos asignar la memoria de forma dinámica.
Una pila se representa usando nodos de una lista enlazada. Cada nodo consta de dos campos: datos y
siguiente (almacenamiento de la dirección del siguiente nodo). El campo de datos de cada nodo contiene el valor
asignado y el siguiente apunta al nodo que contiene el siguiente elemento de la pila.
La lista enlazada y la pila son estructuras de datos lineales. La principal diferencia es que Stack sigue el
principio LIFO (Último en entrar, primero en salir), es decir, la inserción y el borrado pueden tener lugar solo en un
extremo, mientras que en una lista enlazada, la inserción y el borrado pueden tener lugar desde cualquier posición.

COLA
Definición.
Una cola (también llamada fila) es un tipo de dato abstracto, caracterizada por ser una secuencia de
elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pull por el
otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar
será también el primero en salir.
En Cola: new (queue), enqueue, dequeue, front, isempty.
● Crear: se crea la cola vacía.
● Encolar: se añade un elemento a la cola. Se añade al final de esta.
● Desencolar: (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que
entró.
● Frente: (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró.
● Vacía (empty): devuelve cierto si la cola está sin elementos o falso en caso de que contenga alguno.
Implementación de colas como arreglos.
Arreglos Circulares.
Una cola circular o anillo es una estructura de datos en la que los elementos están de forma circular y cada
elemento tiene un sucesor y un predecesor. Los elementos pueden consultarse, añadirse y eliminarse únicamente
desde la cabeza del anillo que es una posición distinguida. Existen dos operaciones de rotaciones, una en cada
sentido, de manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor, respectivamente, de la
cabeza actual.
Colas como Lista enlazadas.
Planteamiento: Para resolver el problema sigue la siguiente idea:
Mantenemos dos punteros, anterior y posterior. El anterior apunta al primer elemento de la cola y el posterior
al último.
enQueue(): Esta operación añade un nuevo nodo después del rear y mueve el rear al siguiente nodo.
deQueue(): Esta operación elimina el nodo anterior y mueve el anterior al siguiente nodo.
Sigue los siguientes pasos para resolver el problema:
Crea una clase QNode con miembros de datos integer data y QNode* next
Un constructor parametrizado que tome un valor entero x como parámetro y
establezca data igual a x y next como NULL
Crea una clase Queue con miembros de datos QNode anterior y posterior
Operación Enqueue con parámetro x:
Inicializa QNode* temp con data = x
Si rear es igual a NULL entonces set front y rear a temp y return(Base Case)
Else set rear next to temp and then move rear to temp
Operación Dequeue:
Si el front es NULL return(Base Case)
Inicializar QNode temp con front y poner front a su siguiente
Si el front es igual a NULL entonces pon el rear a NULL
Borrar temp de la memoria

Aplicaciones de las Colas.


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.

También podría gustarte