Estou querendo desenvolver um pequeno codigo para reconhecimento de uma expressao aritmetica qualquer. Ex: (3+1)*2.
O meu problema esta sendo na parte de leitura dos numeros. Eu devo ler caracter a caracter e testar cada uma das posicoes desta String e depois montar os dados ou existe uma maneira mais simples de tratar esses dados ??
Lendo Expressao Aritmetica
6 Respostas
Estou realmente precisando fazer um aplicativo desse tipo no braço mesmo!
Agora meu outro problema, é montar uma arvore binária com os dados. Sera que e mais facil contruir ela de baixo para cima ou de cima para baixo? :roll:
Eu sei que estou sendo persistente neste assunto, mas o que eu posso fazer :?:
Se ela é binária, não deve fazer muita diferença se você começa por cima ou por baixo não.
Acho que as mais complexas é que vão ficar diferentes… cara, faz teeeeeeeeempo que eu paguei estrutura de dados! Acho que as tipo B (é isso mesmo?) é que vão ficar diferentes.
Estou ficando maluco com esse probleminha… Sera que eu devo tratar caracter a caracter a minha expressao para depois montar o sistema ?
Sim e não, você só tem que separar os números dos operadores (mas isso você já sabia né…).
Olha, eu fiquei pensando besteira aqui e pensei no seguinte, imagine uma árvore onde as folhas são “números” e os nós são “operadores”, tipo:
1+ 1
Vira:
+
1 1
Não sei se isso funciona, mas é uma idéia né. Usando o padrão Composite não deve ser tão complicado assim de montar.