溫馨提示×

php二叉樹如何查找值

PHP
小樊
82
2024-10-17 19:33:02
欄目: 編程語言

在PHP中,可以使用遞歸或迭代的方法來查找二叉樹中的值。以下是使用遞歸方法的示例:

首先,定義一個二叉樹節(jié)點類:

class TreeNode {
    public $value;
    public $left;
    public $right;

    public function __construct($value) {
        $this->value = $value;
        $this->left = null;
        $this->right = null;
    }
}

然后,創(chuàng)建一個二叉樹并查找特定值的函數(shù):

function findValueInBinaryTree($root, $target) {
    if ($root === null) {
        return false;
    }

    if ($root->value === $target) {
        return true;
    }

    $foundInLeft = findValueInBinaryTree($root->left, $target);
    $foundInRight = findValueInBinaryTree($root->right, $target);

    return $foundInLeft || $foundInRight;
}

使用示例:

// 創(chuàng)建一個簡單的二叉樹
$root = new TreeNode(10);
$root->left = new TreeNode(5);
$root->right = new TreeNode(15);
$root->left->left = new TreeNode(3);
$root->left->right = new TreeNode(7);
$root->right->left = new TreeNode(12);
$root->right->right = new TreeNode(18);

// 查找值
$target = 7;
$result = findValueInBinaryTree($root, $target);
echo ($result ? "找到值:{$target}" : "未找到值:{$target}") . PHP_EOL;

這個示例中,findValueInBinaryTree函數(shù)會遞歸地遍歷二叉樹,直到找到目標值或遍歷完整棵樹。如果找到目標值,函數(shù)返回true,否則返回false。

0