Aqui é até onde consegui, da dando um erro: Stray \222 in program
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef char Item;
typedef struct NoPilha {
Item dado;
struct NoPilha *prox;
} NoPilha;
void empilhar(NoPilha **p) {
Item i;
NoPilha *q = (NoPilha *) malloc(sizeof(NoPilha));
q->dado = i;
q->prox = *p;
*p = q;
}
void desempilhar(NoPilha **p) {
NoPilha *q = *p;
Item i = q->dado;
*p = q->prox;
free(q);
}
int eh_balanceada(char *str) {
NoPilha *pilha; // pilha de caracteres
int i, ok = 1;
char par;
empilhar(&pilha);
for (i = 0; ok && str != ’\0’; i++) { // para cada caractere
if (str == ’[’ || str == ’(’) {
empilhar(&pilha, str);
}
else{
par = desempilhar(&pilha);
if (str == ’]’ && par != ’[’) ok = 0;
if (str == ’)’ && par != ’(’) ok = 0;
}
}
// if (!eh_vazia(pilha)) ok = 0; // deve terminar vazia
// destruir_pilha(pilha);
return ok;
}
int main(int argc, char *argv[])
{
system("PAUSE");
return 0;
}