DEV Community

Leo
Leo

Posted on

quita y pone lista

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;
}


Enter fullscreen mode Exit fullscreen mode

Top comments (0)