数据结构中的树是一种非常重要的数据结构,其包括二叉树、平衡树、红黑树等多种类型。在PHP语言中,我们可以用类或面向对象的方法实现树,以下是几种常见树的原理和PHP代码实现。
1. 二叉树(Binary Tree)
二叉树是树的一种特殊形式,每个节点最多有两个子节点,左子节点小于父节点,右子节点大于父节点。如果左右子树都为空,则该节点是叶子节点。
以下是PHP代码实现二叉树:
class Node {
public $data; // 节点值
public $leftChild; // 左子节点
public $rightChild; // 右子节点
public function __construct($data) {
$this->data = $data;
$this->leftChild = null;
$this->rightChild = null;
}
}
class BinaryTree {
private $root; // 根节点
public function __construct() {
$this->root = null;
}
public function insert($data) {
$newNode = new Node($data);
if ($this->root == null) {
$this->root = $newNode;
} else {
$current = $this->root;
while (true) {
if ($data < $current->data) {
if ($current->leftChild == null) {
$current->leftChild = $newNode;
break;
} else {
$current = $current->leftChild;
}
} else {
if ($current->rightChild == null) {
$current->rightChild = $newNode;
break;
} else {
$current = $current->rightChild;
}
}
}
}