2
この種のツリーでInOrderトラバーサルを実装するにはどうすればよいですか?私も演算子を印刷する必要があります(3-2-1のように)。InOrderツリーのトラバーサル
私は、これらのクラスを持っている:
public class BinaryOperator extends Value {
private Value firstOperand;
private Value secondOperand;
private String operator;
public BinaryOperator(Value firstOperand, Value secondOperand,
String operator) {
this.firstOperand = firstOperand;
this.secondOperand = secondOperand;
this.operator = operator;
}
}
public class Number extends Value {
private Integer value;
public Number(Integer value) {
this.value = value;
}
}
Tree
Root
/\
/\
BO Num
/\
/\
BO OP Num
/\
/\
Num OP Num
explanation:
- BO: binary operator - consists of two children which may be Num or another BO
- Num: just a number
- OP: operation like +-...
実際にイテレータを使いたいと思います。トラバーサルを実行し、要素を配列に入れて、それを読み取るだけの良い方法ですか? – user219882
良い質問です!欠点は、トラバース中に要素を削除できないことです。各ノードの親ノードへのリンクを使用することをお勧めしますが、そうすることで余分なメンテナンスが発生します。 –
私は 'remove'操作をサポートする必要がないので、私はそれを行う最も簡単な方法を使用しました。ありがとうございました... – user219882