Mam do napisania 2 metody, zmieniajace wyrazenie w postaci prefixowej na infixowa i postfixowa. Mam tez podane 4 klasy:
Pastebin:
- klasa Main
- klasa Expression
- klasa Value (subclass of Expression)
- klasa Operation (subclass of Expression)
I niestety nawet nie wiem jak do tego podejsc. Na poczatek pomoglibyscie wydrukowac to w postaci takiej jaka jest, czyli prefix?
// File name: Main.java
public class Main {
private static String postfixRepr(Expression e) {
// TODO: implement this
return "Postfix not implemented!";
}
private static String infixRepr(Expression e) {
// TODO: implement this
return "Infix not implemented";
}
public static void main(String[] args) {
System.out.println(postfixRepr(Expression.EXAMPLE_1));
System.out.println(infixRepr(Expression.EXAMPLE_2));
}
}
public abstract class Expression {
public static final Expression EXAMPLE_1 =
new Operation('*',
new Value(2),
new Operation('+',
new Value(5),
new Value(7)));
public static final Expression EXAMPLE_2 =
new Operation('/',
new Operation('*',
new Value(2),
new Operation('+',
new Value(3),
new Operation('-',
new Operation('-',
new Value(4),
new Value(5)),
new Operation('-',
new Value(1),
new Value(2))))),
new Operation('*',
new Value(3),
new Value(4)));
}
public class Operation extends Expression {
public char op; // One of: '+', '-', '*', '/'
public Expression arg1;
public Expression arg2;
public Operation(char op, Expression arg1, Expression arg2) {
this.op = op;
this.arg1 = arg1;
this.arg2 = arg2;
}
}
public class Value extends Expression {
public int value; // Always a positive number
public Value(int value) {
this.value = value;
}
}```