PILAS EN C++
Enviado por kattha • 4 de Octubre de 2014 • Examen • 1.353 Palabras (6 Páginas) • 192 Visitas
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.
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.
Implementacion en C++
/*
Name: Pilas
Copyright: casicodigo.blogspot.com
Author: Jose Martin Cruz Otiniano
Date: 27/10/12 12:27
Description: Apila elemento, Desempila elemento, Mostrar pila, Destruir Pila
*/
#include <iostream>
using namespace std;
struct nodo{
int nro;
struct nodo *sgte;
};
typedef nodo *ptrPila; // creando nodo tipo puntero( tipo de dato )
/* Apilar elemento
---------------------------------------------------------------------*/
void push( ptrPila &p, int valor )
{
ptrPila aux;
aux = new(struct nodo); // apuntamos al nuevo nodo creado
aux->nro = valor;
aux->sgte = p ;
p = aux ;
}
/* Desapilar elemento(devuelve elemento)
---------------------------------------------------------------------*/
int pop( ptrPila &p )
{
int num ;
ptrPila aux;
aux = p ;
num = aux->nro; // asignamos el primer vamor de la pila
p = aux->sgte ;
delete(aux);
return num;
}
/* Muestra elementos de la pila
---------------------------------------------------------------------*/
void mostrar_pila( ptrPila p )
{
ptrPila aux;
aux = p; // apunta al inicio de la lista
while( aux !=NULL )
{
cout<<"\t"<< aux->nro <<endl;
aux = aux->sgte;
}
}
/* Eliminar todos los elementos de la pila
---------------------------------------------------------------------*/
void destruir_pila(
...