秒懂二叉树中的前序、中序,后序遍历元素排列顺序
我看网上看了许多如何前序、中序,后序遍历元素排列顺序,发现并没有彻底的理解。然后我请教了我的同学,让我对其有了深入理解。
方法:把二叉树前序、中序,后序遍历递归算法理解了,自然就会排序。
举个递归前序遍历栗子,代码如下:
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。
中序,后续同理。