PHP排序二叉树基本功能实现方法示例

1. 介绍

排序二叉树,也被称为二叉搜索树,是一种具有特定排序顺序的二叉树结构。它的特点是每个节点都有一个键值,且左子节点的键值小于等于父节点的键值,右子节点的键值大于等于父节点的键值。排序二叉树可以快速进行插入、删除和查找操作,因此在很多应用中被广泛使用。

2. 构造排序二叉树

2.1 插入节点

在构造排序二叉树时,需要按照特定的规则插入节点。插入节点的基本步骤如下:

如果树为空,将待插入节点作为根节点。

如果待插入节点的键值小于当前节点的键值,将节点插入到当前节点的左子树中。

如果待插入节点的键值大于等于当前节点的键值,将节点插入到当前节点的右子树中。

下面是插入节点的 PHP 实现:

class Node {

public $key;

public $left;

public $right;

public function __construct($key) {

$this->key = $key;

$this->left = null;

$this->right = null;

}

}

class BinarySearchTree {

public $root;

public function __construct() {

$this->root = null;

}

public function insert($key) {

$node = new Node($key);

if ($this->root === null) {

$this->root = $node;

} else {

$current = $this->root;

while (true) {

if ($key < $current->key) {

if ($current->left === null) {

$current->left = $node;

break;

} else {

$current = $current->left;

}

} else {

if ($current->right === null) {

$current->right = $node;

break;

} else {

$current = $current->right;

}

}

}

}

}

}

在上述代码中,我们定义了一个 Node 类来表示二叉树的节点,包括键值以及左右子节点的引用。然后继续定义了一个 BinarySearchTree 类来实现排序二叉树的基本功能。在插入节点的方法中,我们根据节点的键值与当前节点的比较结果,递归地找到插入位置。

2.2 构建示例树

我们可以使用以下代码来构建一个示例的排序二叉树:

$bst = new BinarySearchTree();

$bst->insert(8);

$bst->insert(3);

$bst->insert(10);

$bst->insert(1);

$bst->insert(6);

$bst->insert(14);

$bst->insert(4);

$bst->insert(7);

$bst->insert(13);

以上代码构建了一个具有 9 个节点的排序二叉树。树的结构如下:

8

/ \

3 10

/ \ \

1 6 14

/ \ /

4 7 13

通过以上示例,我们可以看到排序二叉树的插入过程。在插入节点时,根据节点的键值与当前节点的比较结果,递归地找到合适的插入位置。

后端开发标签