三叉树存储结构如下
| id | parent | l_child | m_child | r_child | 我现在需要 指定一个节点,插入一个孩子节点,要求这个节点距离指定节点的距离最小,并且按照优先级 l->m->r 的顺序插入进去,也就是说,当达插入的节点达到某个数量的时候,能成为一颗完全三叉树
| id | parent | l_child | m_child | r_child | 我现在需要 指定一个节点,插入一个孩子节点,要求这个节点距离指定节点的距离最小,并且按照优先级 l->m->r 的顺序插入进去,也就是说,当达插入的节点达到某个数量的时候,能成为一颗完全三叉树
若深度相等则按 l->m->r 顺序插入
否则插入到深度最小的下面这是个纯数学题,并没有实用价值
function a($tree,&$uid){
foreach ($tree as $val){
if($val['uid'] == $uid){
if ($val['l_child'] == 0) {
return $val['uid'].'l_child';
}
if ($val['m_child'] == 0) {
return $val['uid'].'m_child';
}
if ($val['r_child'] == 0) {
return $val['uid'].'r_child';
}
}
}
a($tree,$uid);
}
}
return a($tree,$uid);
}