重念一次早該補起來的「資料結構與演算法」。這篇筆記二元搜尋樹 ( Binary Search Tree, BST ) 的遍歷。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29874
本篇範圍:Chapter 9
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
1. 對於二元搜尋數而言,由於最多左右各只有一個節點,所以可以直接印出,並不需要再執行額外的 for loop
2. Breadth-First Tree Traversal ( BFTT ) 會需要額外的 Queue 來儲存值
3. 至於 Depth-First Tree Traversal ( DFT ) 的三者差別在於印出的時機。
3-1. PreOrder 為當下節點 root 先印,接著遞迴呼叫左邊和右邊
3-2. InOrder 為先遞迴呼叫左邊直到底,然後開始印出,最後再遞迴呼叫右邊
3-3. PostOrder 為先遞迴呼叫左邊,再遞迴呼叫右邊,最後才印出