[DFS] 深度優先搜尋(Depth-First Search)
深度優先搜尋
深度優先搜尋有三種搜尋,前序、中序、後序
首先,限定樹的類別
<?php
Class TreeNode {
public function __construct(
public $value = 0,
public ?TreeNode $left = null,
public ?TreeNode $right = null
) {
}
}前序走訪
<?php
function preorder (TreeNode $node) {
// 最後一個節點
if ($node == null) return;
// 從根節點,向左讀取,直到左邊沒有東西後,才向右讀取
echo $node->value;
inorder($node->left);
inorder($node->right);
}中序走訪
後序走訪
Last updated