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


Warning: Missing argument 1 for cwppos_show_review(), called in /home/godie/godieboy.com/wp-content/themes/flat/content-single.php on line 29 and defined in /home/godie/godieboy.com/wp-content/plugins/wp-product-review/includes/legacy.php on line 18

Comentarios

  1. 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…..

  2. […] una clase Pila como se explico uno posts antes para que hagan el ejercicio de las torres de hanoi sin […]

  3. […] 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. Ver detalle… […]

  4. JUAN dice:

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

  5. jeremias dice:

    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

  6. jeremias dice:

    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

    1. andre dice:

      yo ocupaba la solucion con pila y cola 🙁 java

      1. godie dice:

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

  7. […] de tipo texto). //n es el numero de discos //pilaN, pilaO, pilaD y pilaA son estructuras de tipo PILA //tope es una variable de tipo entero. //varaux es una variable de tipo texto (en este caso por que […]

  8. stefany dice:

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