PHP: Деревья (14) (Конспект Hexlet)

  1. Введение
  2. Определения
    1. Дерево: узлы (node) + ребра
    2. Узлы бывают внутренние (те, у которых есть потомки) и листовые узлы (те, у которых нет потомков)
    3. Глубина (depth) определяет то, сколько шагов нужно пройти по вершинам от корневой, чтобы достичь текущей
    4. Вершины на одной глубине называются братскими или сестринскими
    5. Варианты описания
      1. Вложенные массивы:
        1. [[1, 4], 2, [3, 8]];
        2. [[1], [[[2], [[5], [6]]], [3], [[4], [[7], [8]]]]];
      2. Ассоциативные массивы
    6. Определение того, что за узел перед нами (какой у него тип!), нужно делать через проверку type, а не через проверку наличия свойства children
  3. Traversal
    1. Обход в глубину – один из вариантов обхода дерева
  4. Map
    1. Функция map каждому узлу ставит в соответствие новый узел, так что структура всего дерева остаётся прежней, а вот данные внутри узла меняются