1. 程式人生 > >秒懂二叉樹中的前序、中序,後序遍歷元素排列順序

秒懂二叉樹中的前序、中序,後序遍歷元素排列順序

我看網上看了許多如何前序、中序,後序遍歷元素排列順序,發現並沒有徹底的理解。然後我請教了我的同學,讓我對其有了深入理解。

方法:把二叉樹前序、中序,後序遍歷遞迴演算法理解了,自然就會排序。

舉個遞迴前序遍歷栗子,程式碼如下:

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。

中序,後續同理。