如何编写递归方法来检查这种情况?

时间:2013-01-23 07:13:55

标签: java recursion

这是我的情景。我有以下对象;

public class MyTemplate{

private MyTemplate[]childTemplates;
}

现在在同一个类中,我有一个数组,它包含同一个对象的子元素,在本例中是一个模板。我需要的是能够遍历这些元素中的每个元素和元素,因为这可以像树结构。我现在想不出能够涵盖元素中每一个子元素的方式。

感谢是否有人能指引我走向正确的方向。

3 个答案:

答案 0 :(得分:6)

喜欢这个吗?

public class MyTemplate
{
  private MyTemplate[] childTemplates;

  void iterate()
  {
    // do something with this
    for (MyTemplate template: childTemplates)
      template.iterate();
  }
}

答案 1 :(得分:1)

您还可以使用每个模板执行一个过程:

public class MyTemplate
{
  private MyTemplate[] childTemplates;

  void iterate()
  {
    preProcess();
    for (MyTemplate template: childTemplates)
      template.iterate();
    postProcess();
  }

  void preProcess()
  {
    // do something before iterating through the children
  }

  void postProcess()
  {
    // do something afterwards
  }

}

答案 2 :(得分:1)

试试这个:

public traverse() {
    if(children == null || children.size == 0) {
        return;
    }
    for(i = 0; i < children.size; i++) {
       children[i].doSomething();
       children[i].traverse();
   }
}