秒懂二叉树中的前序、中序,后序遍历元素排列顺序

我看网上看了许多如何前序、中序,后序遍历元素排列顺序,发现并没有彻底的理解。然后我请教了我的同学,让我对其有了深入理解。

方法:把二叉树前序、中序,后序遍历递归算法理解了,自然就会排序。

举个递归前序遍历栗子,代码如下:

void preOrder1(BinTree *root)     //递归前序遍历 
2 {
3     if(root!=NULL)
4     {
5         cout<<root->data<<" ";
6         preOrder1(root->lchild);
7         preOrder1(root->rchild);
8     }
9 }
秒懂二叉树中的前序、中序,后序遍历元素排列顺序

那么它是如何进行前序遍历的?

当然要跟着代码走(关键是理解递归!)如图:

秒懂二叉树中的前序、中序,后序遍历元素排列顺序

注意:1、凡是子孩子为空,就会返回给父节点。

2、当G遍历完时,先返回B,B的右孩子为空,然后返回到A。

中序,后续同理。