1. 程式人生 > >PHP實現二叉樹的深度優先遍歷(前序、中序、後序)和廣度優先遍歷(層次)

PHP實現二叉樹的深度優先遍歷(前序、中序、後序)和廣度優先遍歷(層次)

前言:
深度優先遍歷:對每一個可能的分支路徑深入到不能再深入為止,而且每個結點只能訪問一次。要特別注意的是,二叉樹的深度優先遍歷比較特殊,可以細分為先序遍歷、中序遍歷、後序遍歷。具體說明如下:

前序遍歷:根節點->左子樹->右子樹
中序遍歷:左子樹->根節點->右子樹
後序遍歷:左子樹->右子樹->根節點
廣度優先遍歷:又叫層次遍歷,從上往下對每一層依次訪問,在每一層中,從左往右(也可以從右往左)訪問結點,訪問完一層就進入下一層,直到沒有結點可以訪問為止。

例如對於一下這棵樹:

深度優先遍歷:

前序遍歷:10 8 7 9 12 11 13
中序遍歷:7 8 9 10 11 12 13
後序遍歷:7 9 8 11 13 12 10
廣度優先遍歷:

層次遍歷:10 8 12 7 9 11 13
二叉樹的深度優先遍歷的非遞迴的通用做法是採用棧,廣度優先遍歷的非遞迴的通用做法是採用佇列。

程式碼實現參考原文:
--------------------- 
作者:LSGOZJ 
來源:CSDN 
原文:https://blog.csdn.net/baidu_30000217/article/details/52953127 
版權宣告:本文為博主原創文章,轉載請附上博文連結!