两个递归函数如何在inorder walk BST中起作用?

时间:2016-12-12 19:15:14

标签: recursion

大家好,我有一个关于两个递归实际上如何在这段特定代码中起作用的问题

void inOrder(struct node* r)
{
    if(r!=NULL){
        inOrder(r->left); //  a
        printf("%d ", r->value); // b
        inOrder(r->right); // c
    }

}

所以a,c函数将以哪种顺序执行

谢谢

2 个答案:

答案 0 :(得分:2)

你可能指的是递归的调用树,这里有一个可以直观解释它的小gif:

enter image description here

用语言表达的方式更好。

我制作了GIF,但作品不是我的,我从这个演示文稿中取出了作品www.cc.gatech.edu/~bleahy/cs1311/cs1311lecture12wdl.ppt

答案 1 :(得分:0)

就像它们不是递归调用一样:(a)先行,然后是printf,然后是(c)。