[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