在PHP类物体深度分析——PHP自有序二叉树
使用某种逻辑节点之间的二叉树可以提供组织的一个好方法。每个节点都满足特定条件的位于左节点和其子节点的所有元素。当我们插入新的元素,我们需要从第一个节点(根节点)的树,确定它属于节点的哪一边,然后发现这边的正确位置。同样,当我们读取数据时,只需要遍历序数树遍历两叉树。复制代码代码如下所示:
< PHP
ob_start();
在这里,我们需要包含二叉树类
类binary_tree_node(){
可以在您/您找到详细信息
}
ob_end_clean();
定义一个类来实现自排序二进制树
类sorting_tree {
定义变量以保存我们的树:
公共$树;
我们需要一种方法,允许插入自动放置的位置。
以树中的适当顺序
公共函数插入($ $){
第一种情况: /句柄
如果(!(isset(美元->树))){
美元->树=新binary_tree_node(美元值);
{人}
所有其他案例:
启动一个指针,该指针指向当前树顶:
$指针;
迭代搜索树以找到正确的位置:
为(;){
如果该值小于或等于当前数据:
如果($数据){
我们正在寻找左边/如果孩子存在:…
如果($指针左){
遍历/加深:
$指针= $指针>左;
{人}
找到新的位置:在这里插入新的元素:
$指针->左=新binary_tree_node(美元值);
打破;
}
{人}
如果孩子存在,我们正在寻找正确的答案:…
如果($指针-右){
遍历/加深:
$指针= $指针;
{人}
找到新的位置:在这里插入新的元素:
$指针->右=新binary_tree_node(美元值);
打破;
}
}
}
}
}
现在创建一个方法返回这个树的排序值。
它所需要的就是使用顺序遍历,这将是现在
适当的排序顺序。
公共功能returnsorted(){
返回这个->树-> traverseinorder();
}
}
一个新的排序树:
sort_as_you_go美元=新sorting_tree();
随机创建 20个数字,然后插入它们:
($ i = 0;$ i < 20;$ + +){
sort_as_you_go美元->插入(rand(1100));
}
用顺序遍历方式将树返回/输出,然后进行排序:
例如:1, 2, 11、18, 22, 26、32, 32, 34、43, 46, 47、47, 53, 60、71,
75 84, 86, 90。
回声,内爆(',',sort_as_you_go美元-> returnsorted()),;
>