Notacao polonesa

6 respostas
X

como posso inserir os dados (A+B) * (C+D) em uma arvore binaria sendo que os operandos sempre devem aparecer como folhas e os operadores nunca? é essa a regra né em notacao polonesa?

6 Respostas

E

Não entendi patavina.

A notação polonesa inversa seria:

a b + c d + *

E a notação polonesa direta seria:

    • a b + c d
X

preciso de um algoritmo para gerar uma árvore binária a partir de uma expressão aritmética em notação infixa

Ex: A + B * C

ficaria

+ A * B C

E

Bom, você pode criar uma pilha e sabe qual é a precedência de operadores (* tem precedência sobre +). Você também precisa tratar os parênteses, não?

X

Sim eu sei que da com uma pilha mas eu precisava mesmo que fosse com uma arvore binaria
a procedencia dos operadores é o que tiver fora do parentese

pablosaraiva

A entrada do seu programa é uma expressão no formato infix:

[(a+b) * (c+d)]

Antes de montar a árvore, você precisa colocar a expressão no formato prefix (notação polonesa).

    • a b + c d

A partir daí você monta a árvore.

* + + a b c d
Obviamente, seu programa deve conhecer a gramática utilizada para diferenciar os símbolos dos operadores dos operandos.

E

Você precisa da pilha para poder montar a árvore. Eu não disse para usar a pilha para poder avaliar a expressão.

Criado 18 de novembro de 2009
Ultima resposta 18 de nov. de 2009
Respostas 6
Participantes 3