Está en la página 1de 20

Pilas en C++

Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de
acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar,
primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en
multitud de ocasiones en el área de informática debido a su simplicidad y ordenación
implícita de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push), que
coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop), que retira el
último elemento apilado.
Son unas estructuras que son
más utilizadas siempre que se
quieran recuperar
una serie de elementos en orden
inverso a como se introdujeron.
Tanto la extracción como la
inserción de un elemento en la
pila se realiza por la
parte superior, por lo tanto, el
único elemento al que podemos
acceder es el
ultimo, y como el ultimo
elemento que se pone en la pila
es el primero que se
puede sacar, a estas estructuras
dinámicas llamadas pilas se les
conoce como
LIFO (Last In First Off).
Las pilas se deben implementar
de forma dinámica utilizando
punteros, pero si
el lenguaje de programación
que estamos utilizando no
admite punteros,
entonces tendremos que
utilizar arrays, y además
una variable que
normalmente se le da el
nombre de `cima' y es la
que apunta al último
elemento de la pila.
Aplicaciones de las pilas: el uso
más común que suele darse a las
pilas es
cuando hacemos una llamada
desde un programa a otro
subprograma.
Se utiliza las pilas para guardar
el lugar desde donde se hizo la
llamada y para
almacenar el estado de las
variables en el momento en que
se hace la llamada.
También se utilizan en todos los
algoritmos recursivos para
almacenar el valor
de las variables y los
parámetros.
Son unas estructuras que son
más utilizadas siempre que se
quieran recuperar
una serie de elementos en orden
inverso a como se introdujeron.
Tanto la extracción como la
inserción de un elemento en la
pila se realiza por la
parte superior, por lo tanto, el
único elemento al que podemos
acceder es el
ultimo, y como el ultimo
elemento que se pone en la pila
es el primero que se
puede sacar, a estas estructuras
dinámicas llamadas pilas se les
conoce como
LIFO (Last In First Off).
Las pilas se deben implementar
de forma dinámica utilizando
punteros, pero si
el lenguaje de programación
que estamos utilizando no
admite punteros,
entonces tendremos que
utilizar arrays, y además
una variable que
normalmente se le da el
nombre de `cima' y es la
que apunta al último
elemento de la pila.
Aplicaciones de las pilas: el uso
más común que suele darse a las
pilas es
cuando hacemos una llamada
desde un programa a otro
subprograma.
Se utiliza las pilas para guardar
el lugar desde donde se hizo la
llamada y para
almacenar el estado de las
variables en el momento en que
se hace la llamada.
También se utilizan en todos los
algoritmos recursivos para
almacenar el valor
de las variables y los
parámetros.
Son unas estructuras que son
más utilizadas siempre que se
quieran recuperar
una serie de elementos en orden
inverso a como se introdujeron.
Tanto la extracción como la
inserción de un elemento en la
pila se realiza por la
parte superior, por lo tanto, el
único elemento al que podemos
acceder es el
ultimo, y como el ultimo
elemento que se pone en la pila
es el primero que se
puede sacar, a estas estructuras
dinámicas llamadas pilas se les
conoce como
LIFO (Last In First Off).
Las pilas se deben implementar
de forma dinámica utilizando
punteros, pero si
el lenguaje de programación
que estamos utilizando no
admite punteros,
entonces tendremos que
utilizar arrays, y además
una variable que
normalmente se le da el
nombre de `cima' y es la
que apunta al último
elemento de la pila.
Aplicaciones de las pilas: el uso
más común que suele darse a las
pilas es
cuando hacemos una llamada
desde un programa a otro
subprograma.
Se utiliza las pilas para guardar
el lugar desde donde se hizo la
llamada y para
almacenar el estado de las
variables en el momento en que
se hace la llamada.
También se utilizan en todos los
algoritmos recursivos para
almacenar el valor
de las variables y los
parámetros.
CONSIDERACIONES
TEORICAS.
nas estructuras que son más
utilizadas siempre que se
quieran recuperar
una serie de elementos e

Son unas estructuras que son más utilizadas siempre que se quieran recuperar una serie de
elementos en orden inverso a como se introdujeron.
Tanto la extracción como la inserción de un elemento en la pila se realiza por la parte superior,
por lo tanto, el único elemento al que podemos acceder es el ultimo, y como el ultimo elemento
que se pone en la pila es el primero que se puede sacar, a estas estructuras dinámicas
llamadas pilas se les conoce como LIFO (Last In First Off).

Las pilas se deben implementar


de forma dinámica utilizando
punteros, pero si
el lenguaje de programación
que estamos utilizando no
admite punteros,
entonces tendremos que
utilizar arrays, y además
una variable que
normalmente se le da el
nombre de `cima' y es la
que apunta al último
elemento de la pila.
Las pilas se deben implementar de forma dinámica utilizando punteros, pero si el lenguaje de
programación que estamos utilizando no admite punteros, entonces tendremos que
utilizar arrays, y además una variable que normalmente se le da el nombre de
`cima' y es la que apunta al último elemento de la pila.

Las pilas se deben implementar


de forma dinámica utilizando
punteros, pero si
el lenguaje de programación
que estamos utilizando no
admite punteros,
entonces tendremos que
utilizar arrays, y además
una variable que
normalmente se le da el
nombre de `cima' y es la
que apunta al último
elemento de la pila.

Aplicaciones de las pilas:


el uso más común que suele darse a las pilas es cuando hacemos una llamada desde un
programa a otro subprograma.
Se utiliza las pilas para guardar el lugar desde donde se hizo la llamada y para almacenar el
estado de las variables en el momento en que se hace la llamada. También se utilizan en todos
los algoritmos recursivos para almacenar el valor de las variables y los parámetros.
Las pilas son estructuras de datos que tienes dos operaciones básicas:

 o push (para insertar un elemento)


 ⇒ pop (para extraer un elemento).

Su característica fundamental es que al extraer se obtiene siempre el último elemento


que acaba de insertarse. Por esta razón también se conocen como estructuras de datos
LIFO (del inglés Last In First Out). Una posible implementación mediante listas
enlazadas sería insertando y extrayendo siempre por el principio de la lista. Gracias a
las pilas es posible el uso de la recursividad.

La variable que llama al mismo procedimiento en el q está, habrá que


guardarla así como el resto de variables de la nueva llamada, para a la vuelta de la
recursividad ir sacándolas, esto es posible a la implementación de pilas.

Por ejemplo, la gestión de ventanas en Windows (cuando cerramos una


ventana siempre recuperamos la que teníamos detrás).

Otro ejemplo es la evaluación general de cualquier expresión matemática para evitar


tener que calcular el número de variables temporales que hacen falta.

Por ejemplo:3 + 4 * (8 – 2 * 5)
Código pila

Colas en C++

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.
USOS DE LAS COLAS

  La particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al


primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el
principio y sólo se pueden añadir por el final de la cola.
OPERACIONES BÁSICAS
žCrear: se crea la cola vacía.
žEncolar (añadir, entrar, insertar): 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ó

TIPOS DE COLAS
COLAS CIRCULARES
(ANILLOS).
žEstas consisten en las que el último elemento y el primero están unidos.

COLAS DE PRIORIDAD
žEn ellas, los elementos se atienden en el orden indicado por una prioridad asociada a cada uno. Si varios
elementos tienen la misma prioridad, se atenderán de modo convencional según la posición que
ocupen. Hay 2 formas de implementación:
ž1.  Añadir un campo a cada nodo con su prioridad. Resulta conveniente mantener la cola ordenada por
orden de prioridad.
ž2.  Crear tantas colas como prioridades haya, y almacenar cada elemento en su cola.

BICOLAS
žSon colas en donde los nodos se pueden añadir y quitar por ambos extremos; se les llama DEQUE (Double
Ended QUEue). Para representar las bicolas lo podemos hacer con un array circular con Inicio y Fin
que apunten a cada uno de los extremos. 

También podría gustarte