Sobes.tech
Back to questions
Middle
4

Задача: обход дерева с выводом текста с отступами (рекурсивный обход вложенного списка)

Companies where asked
МПФИТ

Answer from AI

sobes.tech AI

Для рекурсивного обхода дерева с выводом текста с отступами можно использовать функцию, которая принимает узел и уровень вложенности. На каждом уровне добавляем отступы, например, с помощью пробелов или табуляций.

Пример на JavaScript для вложенного списка объектов:

function printTree(node, indent = 0) {
  console.log(' '.repeat(indent) + node.text);
  if (node.children) {
    node.children.forEach(child => printTree(child, indent + 2));
  }
}

// Пример данных
const tree = {
  text: 'root',
  children: [
    { text: 'child1' },
    { text: 'child2', children: [
      { text: 'grandchild1' },
      { text: 'grandchild2' }
    ]}
  ]
};

printTree(tree);

Вывод будет с отступами, отражающими глубину вложенности:

root
  child1
  child2
    grandchild1
    grandchild2

Такой подход универсален и легко адаптируется под разные структуры и форматы вывода.