Professional Documents
Culture Documents
PILAS en C++
Lenguaje C / C++
Pilas - Definicin
Una Pila es un tipo de lista abierta en la que solo se pueden insertar o eliminar nodos en uno de los extremos de la lista. Estas operaciones son conocidas como PUSH y POP, que significan empujar y tirar respectivamente. Adems las escrituras de datos siempre con consideradas inserciones de nodos, y las lecturas siempre eliminaran el nodo ledo.
Pilas - Definicin
A las Pilas se les conoce como estructuras tipo LIFO(Last In First Out), el ultimo en entrar es el primero en salir. Un ejemplo tpico para comprender su funcionamiento es imaginar una pila de platos. El ultimo plato colocado sobre la pila es el primero que se quita de ella. El manejo de una pila es similar al de las listas, solo que el numero de operacin que puede realizarse es menor.
Pilas - Definicin
A continuacin vamos a ver como crear una pila, introducir elementos y retirar elementos de ella.
Pilas Creacin
Al igual que con las listas, consiste en definir una estructura para el nodo, crear un puntero capaz de apuntar a esos nodos y hacer que apunte NULL, ya que en un primer momento la pila esta vaca.
#include <stdio.h> #include <stdlib.h> //Definicion del nodo, Como datos contiene un numero entero //El punter ps (puntero a siguiente) permitira enlazar los nodos struct nodo { int n; struct nodo * ps; }; int main() { struct nodo *ppila; //Creo el puntero identificador de la pila ppila =NULL; //Al principio la pila no tiene nada return 0; }
ppila =NULL; //Al principio la pila no tiene nada pnodo = (struct nodo*) malloc(sizeof(struct nodo)); //Estoy creando el espacio en memoria para un nodo. pnodo->n = 5; //Introduzco un dato en el nodo
//Ahora adimos el nodo a la pila ppila = pnodo; pnodo->ps = NULL; //Este es el primero de la pila //Pero tambien el ultimo, por lo que su punter debera apuntar a NULL // La pila contiene ahora un solo Nodo return 0; }
//Creamos el nodo pnodo = (struct nodo*) malloc(sizeof(struct nodo)); pnodo->n = 5; //Introduzco un dato en el nodo //Ahora lo concatenamos por delante pnodo->ps = ppila; //Ese nodo es ahora el primero ppila = pnodo; //Resituo el identificador de la pila return 0;
Actividad propuesta
Elabore un algoritmo que permita llenar una pila con los valores enteros de 1 al 10 y luego los valla sacando y mostrando en pantalla uno por uno.