0

Я делаю калькулятор Postfix, где я должен использовать объекты стека и двоичное дерево во время перевода выражения из инфикса в дерево синтаксического анализа во время оценки постфиксного выражения.Binary Tree Postfix Calculator

Может кто-нибудь перевести?

Я разработал метод постфиксного калькулятора, и я разработал метод, который изменяет выражение от infix до postfix, но я не понимаю, что меня просят сделать. Я могу ввести выражение в инфикс и вычислить его так же хорошо, как и преобразовать его в постфикс, но я не могу определить, что именно меня просят создать здесь.

Пример того, как по существу сделать это в псевдокоде, будет очень полезен или просто объяснение того, как хранить математическое выражение в двоичном дереве, а также как оценивать выражение в двоичном дереве со стеком в синтаксический анализ дерево.

Я также скажу, что я немного не уверен, что такое дерево разбора.

Любое объяснение было бы очень оценено.

Это задание для класса, так что можно увидеть здесь, если это недостоверная информация: http://www.cs.gsu.edu/jbhola/csc3410/Spring13/assign6_expre_tree.html

Моя главная точка здесь я просто не совсем понимаю, что я должен делать и как Я должен это сделать. Нам не научили программировать какие-либо из них, и нам не хватает учебника, поэтому я просто слепо пытаюсь обернуть голову вокруг всего проекта:/

+0

Я предполагаю, что вы просили, чтобы построить бинарное дерево представление выражений вы получаете. Строго вам не нужно бинарное дерево для оценки выражения, но это цель упражнения, поэтому вы не можете его отбросить. У вас может не быть учебника, но у вас должен быть Google, который, вероятно, будет лучше в любом случае. –

+0

У меня есть googled, и то, что я нашел, является методом чтения двоичного древовидного выражения в postfix, но не объяснением того, как установить такую ​​вещь или вычислить ее непосредственно из дерева: c –

+1

Сначала я бы волновался о a) что такое двоичное дерево и б) как вы его строите. Как выполнить вычисление на таком дереве, возможно, слишком тривиально, чтобы включить в сообщение. –

ответ

0

Представьте, что у вас есть такой узел, как AddNode, который имеет два значения

class AddNode { 
    final double a, b; 

    double value() { 
     return // how could you return the value of this node? 
    } 
} 

делает его более универсальным

interface Node { double value(); } 

class AddNode implements Node { 
     final Node a, b; 

     double value() { 
      return // something which gives the value of this node. 
     } 
}