Pseudocodigo PILAS push() y pop() estructura de datos

El post anteriores dimos solucion al problema de las torres de Hanoi, de manera recursiva y no recursiva. Para la segunda opcion utilizamos estructuras de tipo pila, pero algunos lectores me regañaron que por que no saben que es una pila, asi que este dia explicare de manera bastante simple lo que es una pila y como funciona.

Definicion formal

Pila: Es una lista de elementos a la cual se le pueden insertar y retirar elementos solo por uno de los extremos. En consecuencia, los elementos de una pila seran retirados en orden inverso al que se insertaron.

Ejemplos graficos

Imaginemos que queremos untar deliciosa y cremosa cajeta en estos panes, lo mas normal es que tomemos el pan que esta hasta arriba y untemos en él la cajeta, despues tomamos el que sigue, el que sigue, y asi hasta llegar al final. Seria mas incomodo sacar panes del medio para untarlos todos, o de la parte de abajo (que weba).

Otro ejemplo es una torre de discos, para sacar el disco de hasta abajo, tienes que sacar primero todos los que estan arriba de el, y es mas lata cuando no sabes que disco es, tienes que buscar de uno por uno e irlos sacando.

¿y pa que fregados me sirve eso?

Bueno, las utilidades de esta estructura son bastantes, entre ellas esta la construccion de calculadoras, sumulacion de recursion o recorrido de arboles por niveles entre muuuchas otras cosas mas. La forma de programarlas varian segun el lenguaje, pero a continuacion explicare estas pilas en forma de arreglos de elementos.

Las pilas en la programacion

Weno, suponiendo que tenemos un arreglo en cualquier lenguaje. Dependiendo del lenguaje podremos sacar valores de dicho arreglo en desorden si asi lo deseamos de diferentes formas, la idea es crear un arreglo con ciertas restricciones, en donde solo se puedan retirar elementos de un solo lado y solo se pueda retirar el elemento que esta hasta la orilla de dicho arreglo. Para retirar elementos es muy coum utilizar el metodo pop, y para introducirlos, el metodo push. Asi, deberemos bloquear todas las modificaciones que podamos hacerle al arreglo y manipular estos movimientos con metodos creados por nosotros que solo permitan sacar el elemento  que se encuentra en el tope e introducir nuevos elementos encima del tope.

Movimientos permitidos en una pila
Movimientos permitidos en una pila

Pseudocodigo de los metodos push y pop

Bueno, aca les dejo el pseudocodigo que deben utilizar para lograr agregar y quitar elementos de una pila

//este algoritmo almacena el valor dato en la pila manejando la variable tope como el puntero del ultimo elemento.
//max es el numero maximo de elementos que puede almacenar la pila

push(pila, max, tope, dato)

si tope < max //solo si deseamos manejar un limite de elementos en la pila si no, no es necesario
entonces

tope=tope + 1
pila[tope]=dato //almacena un nuevo elemento en el siguiente espacio disponible

si no

escribir «La pila esta llena»

Fin //si tope < max

Fin //del metodo

pop(pila, tope, dato)

si tope>0 //vemos si hay elementos en la pila
entonces

dato=pila[tope]
tope=tope-1

si no

escribir «Ya no hay elementos en la pila

Fin //si tope>0

Fin //del metodo

Si quieren dar solucion orientada a objetos, entonces deberan ponerle propiedades al objeto pila, en lugar de enviar los valores como parametro en los metodos. Depende del lenguaje que utilicen.

Si sigue sin servirles esto, poes…. ni modo jojojo!!!

Comenten xD

11 comments
  1. Bitacoras.com
    octubre 7, 2009 at 4:42 pm

    Información Bitacoras.com…

    Valora en Bitacoras.com: El post anteriores dimos solucion al problema de las torres de Hanoi, de manera recursiva y no recursiva. Para la segunda opcion utilizamos estructuras de tipo pila, pero algunos lectores me regañaron que por que no saben que…..

    Reply
  2. JUAN
    JUAN
    marzo 13, 2011 at 10:41 pm

    QUE BUEN POST ESPERO ME PUEDAS AGREGAR A MI CORREO TENGO ALGUNOS PROBLEMAS CON LA PROGRAMACION ESPERO ME PUEDAS AYUDAR UN POCO GRACIAS=

    Reply
  3. jeremias
    jeremias
    abril 16, 2011 at 10:14 am

    que buen post, amigo, aorita tengo q acer un pseudocodigo para java, de una pila, en donde tengo q insertar, borrar, actualizar y ver datos de una aplicacion para una empresa de aereo lineas,
    espero que me ayudens garcias

    Reply
  4. jeremias
    jeremias
    abril 16, 2011 at 11:04 am

    saludos mira esto es loq tengo q acer
    utilizar una lista enlazada o una cola para controlar una lista de pasajeros, de una aereolinea
    el programa principal debe de ser controlado por menu y permitir al usuario visualizar los datos
    de un determinado pasajero, visualizar la lista completa, crear una lista de pasajeros, insertar, borrar,y sustituir datos
    de un determinado pasajero,

    esto es lo que tiene que acer mi pseudocodigo y el codigo en java,
    espero que me eches la mano amigo,

    un saludo y gracias

    Reply
    • andre
      andre
      marzo 3, 2012 at 10:50 pm

      yo ocupaba la solucion con pila y cola 🙁 java

      Reply
      • godie
        godie
        marzo 4, 2012 at 10:06 pm

        Pero ya tienes el pseudo-codigo solo lo pasas al lenguaje que necesites esta facil.

        Reply
  5. stefany
    stefany
    septiembre 9, 2012 at 4:47 pm

    Muy bien Gracias justo para mi tarea de programacion OO ! Salu2

    Reply
  6. Mjo
    Mjo
    noviembre 6, 2022 at 12:46 pm

    Saludos, si me sirvió ,muchas gracias

    Reply
Responder a jeremiasCancel

Your email address will not be published. Required fields are marked *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.