我想知道以下代码如何遍历树:
//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)
如何在树上并排终止?
答案 0 :(得分:2)
我们应用打印顺序然后向右然后:
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