PHP

php二叉树如何查找值

小樊
82
2024-10-17 19:33:02
栏目: 编程语言

在PHP中,可以使用递归或迭代的方法来查找二叉树中的值。以下是使用递归方法的示例:

首先,定义一个二叉树节点类:

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

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

然后,创建一个二叉树并查找特定值的函数:

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;
}

使用示例:

// 创建一个简单的二叉树
$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函数会递归地遍历二叉树,直到找到目标值或遍历完整棵树。如果找到目标值,函数返回true,否则返回false

0
看了该问题的人还看了