【发布时间】:2015-08-18 03:36:24
【问题描述】:
我正在尝试为 mysql 二叉树开发一种算法。它是这样工作的:
表“网络”:id_network、父、子、位置
Ir 就是这样工作的,新用户与父母一起进入系统。我搜索父母是否已经有孩子,如果没有,我将新用户添加为父母的孩子和职位。 (如果没有子,先向左,再向右)
每个父母只能有两个孩子,所以下一个必须是他的孙子,依此类推。 (从左到右)
我有我的 php 代码:
function insertUser($user, $parent) {
$childs = $db -> read('parent =' . $parent); // Return an array with the results from network
$data['parent'] = $parent;
$data['child'] = $user;
if(!$childs[0]) {
$data['position'] = 'left';
$db -> insert($user);
}else{
if(!$childs[1]) {
$data['position'] = 'right';
$db -> insert($user);
}
}
}
我有这个块,我知道只有这样我才能遍历整个树,即使在父级以下有 300 个子级。
谁能帮助我现在可以做些什么来实现从左到右的第一个空白空间中的插入。我认为值得关注...我已经搜索了整个互联网,但我想要的方法,我找不到也无法创建。
【问题讨论】:
-
如果你刚开始,我建议你把它切换到像 mongoDB 这样的 noSQL db,你实际上可以保存引用并将存储的数据构建为树
-
事实上,我在 MongoDB 方面有很好的经验,使用它会很完美和简单。最大的问题是我的客户端使用的服务器不是 VPC 并且没有 noSQL。
-
@RyanVincent 非常感谢,伙计。我在那里看了看,似乎是我需要的。干杯
标签: php mysql algorithm binary-tree