Помогите, два дня уже мучаюсь, не пойму как перебрать дерево: с неограниченным числом вложений, без рекурсии и без ООП. Просто циклами. У кого есть алгоритм, напишите пожалуйста.
$massive[2]["id"] = 2;
$parentNosology[] = 2;
$childNosology = [];
while($childNosology != NULL){
foreach($parentNosology as $keyNosology => $valueNosology){
$childNosology[] = $this->cicleFree($valueNosology);
$massive[$valueNosology]["children"] = $childNosology[0];
}
unset($parentNosology);
foreach($childNosology as $keyChild => $valueChild){
foreach($valueChild as $k => $v){
if($v["id"] != NULL)
$parentNosology[] = $v["id"];
}
}
unset($childNosology);
}
public function cicleFree($nosologyMassive)
{
$nosologyParent = $this->_database->query("SELECT `code` FROM `md_nosology` WHERE `parent_code` = ".$nosologyMassive);
foreach ($nosologyParent as $key => $value) {
$allNosolog[$value["code"]]["id"] = $value["code"];
}
return $allNosolog;
}
Обход бинарного дерева по уровням с использованием очереди:
//начали с корня
queue.insert(root);
while (queue is not empty) {
node = queue.extract;
обработать node;
if (node.left <> Nil)
queue.insert(node.left);
if (node.right <> Nil)
queue.insert(node.right);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Если я выполняю запрос на сервере(ubuntu 1604) через консоль в mysql
Подскажите, есть ли в опенкарт такая же возможность как и в вордпресс добавлять опции, не создавая новые колонки в бд? что-то наподобие функций...
Как из этого массива сформировать массив бинарного дерева через циклы? Не используя рекурсию и классы