cpp
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;
#define MAX 20
typedef char TipoDato ;
struct Pila{
            int Tope;
                TipoDato Elementos[MAX];
};
typedef struct Pila TipoPila;
void InicializarPila( TipoPila &P){
    P.Tope= -1;
}
bool PilaVacia(TipoPila P){
    if (P.Tope == -1 )
    return true;
    else
    return false;
}
bool PilaLlena( TipoPila P){
    if(P.Tope == MAX-1)
    return true;
    else
    return false;
}
void PonerPila(TipoPila &P, TipoDato Dato){
    if ( PilaLlena( P ) == true){
        cout << "la pila esta llena! Overflow";
        system("pause");
    }
    else{
        P.Tope = P.Tope + 1;
        P.Elementos [P.Tope] = Dato;
    }
}
TipoDato QuitarPila(TipoPila &P){
    TipoDato Dato;
    if(PilaVacia ( P ) == true){
        cout << "la pila esta Vacia! Underflow";
        system("pause");
    }
    else{
        Dato = P.Elementos[ P.Tope ];
        P.Tope = P.Tope - 1;
    }
    return Dato;
}
void CadenaInversa(){
    //Declarar variable del tipo Pila
    TipoPila X;
    char Frase[20];
    //Inicializar el tope 
    InicializarPila( X );
    //Solicitar al usuario el ingreso de una cadena
    cout<< "Escribe una frase: ";
    cin >> Frase;
    //Introducir contenido de cadena o frase dentro de la Pila
    for(int i=0; i<= strlen(Frase)-1; i++)
    PonerPila(X, Frase[i]);
    //Vaciar el contenido de la Pila
    while (PilaVacia ( X )!=true){
        cout<< QuitarPila(X);
}
}
int main (){
    CadenaInversa();
return 0;
}
 

 
    
Top comments (0)