Короткий и точный код Js для поиска в глубину в BST

Примечание. Прочитайте о Двоичном дереве поиска и BFS в BST здесь.

Узел:

Псевдокод обхода предварительного заказа:

  1. Создайте массив переменных для хранения значений посещенных узлов.
  2. Напишите вспомогательную функцию, которая принимает узел.
  • Поместите значение узла в переменную, в которой хранятся значения.
  • Если у узла есть свойство left, вызовите вспомогательную функцию со свойством left на узле.
  • Если узел имеет правильное свойство, вызовите вспомогательную функцию с правильным свойством на узле.

3. Вернуть массив переменных.

Примечание.

Вспомогательную функцию также можно записать так:

// helper function
    let helper = node => {
        if(!root) return;
        data.push(node.val);  
        node.left && helper(node.left);
        node.right && helper(node.right);
}

Псевдокод обхода пост-заказа:

  1. Создайте массив переменных для хранения всех значений посещенных узлов.
  2. Напишите вспомогательную функцию, которая принимает узел и
  • Если у узла есть свойство left, вызовите вспомогательную функцию со свойством left на узле.
  • Если узел имеет правильное свойство, вызовите вспомогательную функцию с правильным свойством на узле.
  • Поместите значение узла в массив переменных, в котором хранятся значения.

3. Вызвать вспомогательную функцию с корнем.

4. Вернуть массив данных.

Примечание.

Вспомогательную функцию также можно записать так:

// helper function
    let helper = node => {
        if(!root) return;
        node.left && helper(node.left);
        node.right && helper(node.right);
        data.push(node.val);
}

Псевдокод обхода по порядку:

  1. Создайте массив переменных для хранения всех значений посещенных узлов.
  2. Напишите вспомогательную функцию, которая принимает узел и
  • Если у узла есть свойство left, вызовите вспомогательную функцию со свойством left на узле.
  • Поместите значение узла в массив переменных, в котором хранятся значения.
  • Если узел имеет правильное свойство, вызовите вспомогательную функцию с правильным свойством на узле.

3. Вызвать вспомогательную функцию с корнем.

4. Вернуть массив данных.

Примечание.

Вспомогательную функцию также можно записать так:

// helper function
    let helper = node => {
        if(!root) return;
        node.left && helper(node.left);
        data.push(node.val);
        node.right && helper(node.right);
    }

Также читайте