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