Está en la página 1de 4

#include <iostream> #include <stdio.

h>

using namespace std;

class Nodo{ public: char caracter; Nodo* siguiente; Nodo(char, Nodo*); };

Nodo::Nodo(char caracter, Nodo* siguiente){ this->caracter = caracter; this->siguiente = siguiente; }

class Pila{ Nodo* tope; public: Pila(){tope = NULL;}; ~Pila(); void agregar(char); char quitar(); bool verificar(char*);

bool esVacia(); };

void Pila::agregar(char caracter){ Nodo *nuevo = new Nodo(caracter, tope); tope = nuevo; }

Pila::~Pila(){ while(tope != NULL){ quitar(); } }

char Pila::quitar(){ char caracter = tope->caracter; Nodo* aux = tope; tope = tope->siguiente; delete aux; return caracter; }

bool Pila::esVacia(){ if(tope == NULL){ return true;

} return false; }

bool Pila::verificar(char *secuencia){ for(int i = 0; secuencia[i] != '\0'; i++){ if(secuencia[i] == '(' || secuencia[i] == '[' || secuencia[i] == '{'){ agregar(secuencia[i]); } else { if (secuencia[i] == ')') { if (quitar() != '(') { return false; } } else { if (secuencia[i] == ']') { if (quitar() != '[') { return false; } } else { if (secuencia[i] == '}') {

if (quitar() != '{') {

return false;

} } } } } } if(esVacia()){ return true; } return false; }

int main() {

También podría gustarte