Dividir expressão por prioridade

hi guys :blush:

Estou fazendo um trabalho de estrutura de dados para a faculdade e estou com um problema. O trabalho consiste em realizar uma expressão lógica. Vou dar um exemplo para deixar mais claro:

Possuo uma String com a expressão: “AvB^(CvD)”. Eu tenho que dividir a expressão em etapas por prioridade, sendo que ^ = and v = or. Até aí ok, o problema está nos parênteses, como eu faço para dar prioridade a eles? Por exemplo a expressão “AvB^C(B^(CvD))”, eu teria que resolver primeiro o “CvD” e em seguida “B^(CvD)” e então o resto.

No momento que eu possuo a ordem, eu posso colocar tudo dentro de uma fila e então resolver, acredito que a parte de prioridades é a mais dificil.

Desde ja, thanks :grin:!

1 curtida

Você pode resolver isso usando Thread, amanha vou fazer um codigo que pode te ajudar, ate mais. Mas enquanto isso poste o codigo, vou estar por aqui a noite

Olá

Acho que seria mais fácil usar notação posfixa

http://www.vision.ime.usp.br/~pmiranda/mac122_2s14/aulas/aula13/aula13.html

Para calcular, tem um exemplo no wiki