
【計】 preorder traversal
在計算機科學與數據結構領域,“前序遍曆”(英文:Pre-order Traversal)是一種用于系統性地訪問樹形結構(尤其是二叉樹)中所有節點的經典算法策略。其核心原則遵循“根節點優先”的順序,具體步驟如下:
訪問根節點
首先處理當前子樹的根節點(輸出其值、執行操作等)。
遞歸遍曆左子樹
對根節點的左子樹(若存在)遞歸執行前序遍曆。
遞歸遍曆右子樹
對根節點的右子樹(若存在)遞歸執行前序遍曆。
僞代碼表示(遞歸實現):
def preorder(node):
if node is not None:
visit(node)# 訪問當前根節點
preorder(node.left)# 遍曆左子樹
preorder(node.right) # 遍曆右子樹
時間複雜度與空間複雜度:
對含 n 個節點的樹進行前序遍曆,時間複雜度為 O(n)。遞歸實現的空間複雜度取決于樹的高度,最壞情況(斜樹)為 O(n),平衡樹為 O(log n)。
典型應用場景:
+ * 3 4 5
)。漢英術語對照關鍵點: | 中文術語 | 英文術語 | 說明 | |----------------|------------------------|--------------------------| | 前序遍曆 | Pre-order Traversal| 遍曆順序:根→左→右 | | 節點 | Node | 樹的基本構成單元 | | 遞歸 | Recursion| 通過函數自調用實現遍曆 | | 二叉樹 | Binary Tree| 每個節點最多有兩個子節點 |
權威參考來源:
前序遍曆是二叉樹遍曆的一種方式,其核心特點是按照根節點 → 左子樹 → 右子樹 的順序訪問節點。以下是詳細解釋:
前序遍曆(Preorder Traversal)遵循以下規則:
以二叉樹A → B(左)、C(右),B的子節點為D(左)、E(右) 為例:
最終遍曆順序:A → B → D → E → C。
(2+3)*4
的前序遍曆為 * + 2 3 4
。def preorder(node):
if node:
print(node.val)
preorder(node.left)
preorder(node.right)
通過這種遍曆方式,可以系統地訪問二叉樹的所有節點,并保證根節點優先處理的特性。
半癫狂部件類型布萊克氏試劑不在地主程式控制應用程式庫齒音字母翠雀混堿公開證券交易所光栅常量國際儲備對進口的比率紅外探測系統胡桃加氫裂化瓦斯油結晶出來稽核驚風京燕酒精發酵空氣空間酶笠素哌立索唑片狀電介質缺陷跳越熱變性散射效率田黴素鐵路休克同步計算機推薦書臀肢畸胎