@4sadly

Почему алгоритм выбирает эту ячейку, а не другую?

$tree = R::findOne('users', 'id = 1');
$parentid = 0;
function check_node($x){
    global $parentid;
    global $choosenbranch;
        $right = R::findOne('users', 'parentid = ? AND branch = 1', array($x));
        if($right){
            $choosenbranch = 0;
            check_node($right->id);
        }else{
            $parentid = $x;
        }

        $left = R::findOne('users', 'parentid = ? AND branch = 0', array($x));
        if($left){
            $choosenbranch = 1;
            check_node($left->id);
        }else{
            $parentid = $x;
        }
}
check_node($tree->id);
echo $parentid;
echo '<br>';
echo $choosenbranch;

есть дерево
5e381b05732ff016953451.png
$parentid должен быть равен 3, т. к. там есть свободное и правое и левое место (заполнение справа налево), но он выбирает 4, почему так, где ошибка в логике?
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 1
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Буквально недавно сталкивался с необходимостью подобного решения
Вот из своих закладо, самое подходящее
https://habr.com/ru/post/267855/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы