【问题标题】:Tree traversal, Recursion树遍历,递归
【发布时间】:2014-03-11 02:21:53
【问题描述】:

我想知道以下代码如何遍历树:

//pre order travel 
void travel (BST *tree)
{ 
    the
    if(tree!=NULL)
    {
        printf("%d ",tree->info); 
        travel(tree->left);
        travel(tree->right);
    }
}

我对 travel(tree->left)travel(tree->right) 的递归调用感到困惑。 如果我有:

        A
    B       C
  D       E   F

travel(tree->left)travel(tree->right) 如何在树上并排终止?

【问题讨论】:

    标签: c data-structures recursion tree


    【解决方案1】:

    我们应用打印的顺序,然后左然后右:

        A prints goes left
    
    
         B prints goes left
            D prints goes left
    
            D back left goes right
    
            D back right
         B back left goes right
    
         B back right
    
        A back left goes right 
    

    等等……

    所以你得到:

    A B D C E F

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 2019-12-01
      相关资源
      最近更新 更多