Una Pila es una lista de elementos caracterizada porque las operaciones de Inserción y Eliminación de elementos se realizan solamente en un extremo de la estructura. En consecuencia, los elementos de una Pila se eliminan en el orden inverso al que se insertaron. Debido a esta característica, se le conoce como estructura LIFO (Last In First Out).
Representacion de las Pilas:
Las pilas no son estructuras Fundamentales de Datos, es decir no estan definidas como tales en los lenguajes de programacion. Para su representacion se requieren otras estructuras como:
- Listas
Implementacion en C++:
Una Breve Explicación al Codigo:
La linea 18 define el tipo puntero del tipo nodo al que llama *Puntero, el cual servirá para declarar nuestros nodos.
-La clase Pila define funciones miembro como Apilar(),Desapilar,Cima(), PilaVacia(),MostrarPila() y DestruirPila() y un miembro de datos llamado cima del tipo puntero.
- El constructor Pila() inicia al puntero cima=NULL.
- La funcion miembro PilaVacia() retorna un valor del tipo bool, si la cima esta en NULL devuelve true y si la cima apunta a un nodo devuelve false;.
- La función miembro Apilar(int x), ingresa como parametro un valor del tipo int que sera el dato que apilaremos, para lograrlo creara un puntero p_aux que apuntara al nodo nuevo donde se ingresara el dato y tambien ayudara a posicionar el puntero cima sobre el dato ingresado.
- La función miembro Cima(), devolvera el valor del nodo al que apunta el puntero cima en caso este no apunte a ningun nodo devolvera un mensaje que la pila esta vacia.
- La función miembro Desapilar(), elimina el nodo apuntado por el puntero cima , haciendo que cima apunte al nodo anterior y devolviendo el campo valor del nodo que fue eliminado.
- La función miembro MostrarPila(); devuelve todos los datos de los nodos de la pila, para esto es ayudado por un puntero auxiliar llamado p_aux que recorre cada nodo de la pila.
-La función miembro DestruirPila(), elimina todos los nodos de la pila y hace que cima apunte a NULL.
Aqui les voy a compartir el codigo en C++ de una pila implementada de a forma estructural sin usar clases, el código es compartido por mi amigo Martín desde su blog marcsdev, y su publicación la pueden encontrar aqui.
Espero que les sea de ayuda no olviden suscribirse a mi facebook y a mi blog, Gracias.
SOCIALIZA ESTO →