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)