Можете объяснить как работает данный код
пишу функцию для обратного обхода дерева поиска с приоритетом направо RLN , реализации на с++ не нашел толком , только на javascript . Сам алгоритм обхода понятен , но как он происходит в этой функции - не совсем , можете объяснить поподробнее ?
function traversal(tree) {
// если это не лист
if ( tree.refs ) {
// последовательно справа налево обходим ветви, ведущие к потомкам
for (let i = tree.refs.length - 1; i >= 0; i--) {
traversal( tree.refs[i] ); // рекурсия
}
}
// ...обработка данных узла...
console.log(tree.data); // просто выводим в консоль
}
Ответы (1 шт):
Автор решения: IPOleksenko
→ Ссылка
for (let i = tree.refs.length - 1; i >= 0; i--) - цикл
tree.refs.length - длинна передаваемой переменной
tree.refs.length - берем и отнимаем от длинны 1 каждый раз когда запускается цикл
Мы берем и отнимаем от этого значения один и цикл работает пока оно не станет 0
console.log(tree.data); - вывод значения
Я могу и ошибатся, я учу пайтон, а не С++, но мы его в институте изучаем и могу немного его расшифровать