首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InOrder树遍历

InOrder树遍历
EN

Stack Overflow用户
提问于 2011-10-31 17:43:24
回答 1查看 958关注 0票数 3

如何在这种树上实现InOrder遍历?我还需要打印运算符(如3-2-1)。

我有以下几个类:

代码语言:javascript
复制
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

代码语言:javascript
复制
        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 +-... 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-31 17:48:26

实现这一点的规范方法是简单地在树上递归。

首先递归遍历左侧的子树,然后打印运算符,然后递归遍历右侧的子树。

更高级的实现是使用Iterator和Visitor设计模式,但由于这是一个家庭作业问题,我认为这超出了您的任务范围。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7951994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档