Python版演算法專題 二叉樹的深度優先遍歷
二叉樹作為一種數據結構,其應用場景非常多,具體的有:用於數據的檢索,數據管理,在遊戲領域,可以用於場景的劃分等。
二叉樹的遍歷,分為深度優先遍歷,以及廣度優先遍歷。在深度優先遍歷中,具體分為如下三種:
先序遍歷:先訪問根節點,再遍歷左子樹,再遍歷右子樹;
中序遍歷:先遍歷左子樹,再訪問根節點,再遍歷右子樹;
後序遍歷:先遍歷左子樹,再遍歷右子樹,再訪問根節點
對於上圖的二叉樹,其先序遍歷結果是:50,20,15,30,60,70;其中序遍歷結果是:15,20,30,50,60,70;其後序遍歷結果是:15,30,20,70,60,50
下面,進入我們的代碼實現:
首先,定義二叉樹中的節點:
定義二叉樹類:
遞歸實現的先序遍歷演算法如下:
遞歸實現的中序遍歷演算法如下:
遞歸實現的後序遍歷演算法如下:
我們使用如下的二叉樹,做演算法的驗證:
測試結果如下:
想要系統學習python和免費學習資料的 可以加裙 四七四五三四九五一
※手把手教你用Python和Scikit-learn 實現垃圾郵件過濾
※Python 為何能坐穩 AI 時代頭牌語言
※如果十年前擁有這些技術,你可能比馬雲還要富:python3開發網路爬蟲(一)
TAG:Python |
※自動化測試的理想境界:AppCrawler自動遍歷工具
※數組的遍歷你都會用了,那Promise版本的呢
※XML DOM 遍歷節點樹
※JS 數組循環遍歷方法的對比
※後跟跳躍遍歷匹配演算法
※一文弄懂二叉樹三種遍歷
※黑格爾和謝林論中國在「普遍歷史」中的地位
※意境簡約·文字控·背景圖,「只願你遍歷山河,覺得人間值得」
※「變法」不讀王安石,閱遍歷史也枉然
※翻遍歷史,敢不借錢給皇帝的也就他了!
※翻遍歷史,戰國時期為何唯獨韓國沒有被當做國號使用過!
※翻遍歷史書也找不到上一個拿下這數據的大神!都給我點進來叫哥
※願你遍歷山河,有人和你變成更好的兩個人
※五分鐘,帶你看遍歷代名人書房,張岱最有講究,乾隆最富貴!
※清新風·唯美·壁紙:「我只願你遍歷山河,覺得人間值得」
※突然,能和你遍歷山河,覺得人間值得
※隋唐不知真貴族,讀遍歷史也枉然
※願你遍歷山河,覺得人間值得
※娛樂圈令人艷羨的模範夫妻:遍歷繁華,我仍心悅你
※所有人都希望你快樂,我只願你遍歷山河覺得人生值得