Ir ao conteúdo
  • Cadastre-se

Pilha e Fila


Hahaha123

Posts recomendados

Boa noite pessoal tô com um problema que preciso desenvolver um código que receba uma expressão aritmética e verifique se a expressão esta balanceada e correta;

balanceada entendesse que o mesmo número de parênteses chaves e colchetes que abrem e o mesmo número que fecham e correto entenda-se que os () [] {} fecham no lugar correto e que as operações estão corretas , o esperado e isso:

[3+(2-1)} -> expressão correta

 {3+(2-1}) -> expressão incorreta

se alguém puder ajudar, não consegui sair do lugar...

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!