jihel / library-rbtree
实现红黑树的库
dev-master
2019-02-22 14:49 UTC
Requires
- php: >=5.4
This package is auto-updated.
Last update: 2024-09-19 08:05:33 UTC
README
PHP面向对象实现的红黑树。您可以在维基百科上找到关于此类二叉搜索树的信息。
1- 安装
将库添加到composer.json的require中
{
"require": {
"jihel/library-rbtree": "dev-master",
}
}
或者
php composer.phar require jihel/library-rbtree
2- 使用方法
a) 创建一个树
use Jihel\Library\RBTree\Tree as Tree;
$tree = new Tree();
b) 创建一个节点
$node = new Jihel\Library\RBTree\Node(1, 'My value');
$tree->insert($node);
c) 删除一个节点
$tree->remove($node);
请注意,变量$node没有被删除,该对象仍然存在,但已从树中分离。
d) 查找一个节点
$node = $tree->find(1);
e) 查找一个相对于另一个节点的节点
$next = $tree->findRelative($node, Jihel\Library\RBTree\Model\NodeInterface::POSITION_RIGHT);
// or
$next = $tree->findSuccessor($node);
f) 枚举最小值和最大值之间的节点
$list = $tree->enumerate(1, 12);
您可以查看使用整数节点进行简单实现的示例
4- 感谢
我受到了麻省理工学院Gokce Toykuyu工作的启发。参见他的实现
还有一些关于红黑树工作的YouTube视频,可能会引起您的兴趣
感谢我花时间给懒惰的开发者上课程。
您可以通过这里访问我的简历