Короткий и точный код Js для поиска в глубину в BST
Примечание. Прочитайте о Двоичном дереве поиска и BFS в BST здесь.
Узел:
Псевдокод обхода предварительного заказа:
- Создайте массив переменных для хранения значений посещенных узлов.
- Напишите вспомогательную функцию, которая принимает узел.
- Поместите значение узла в переменную, в которой хранятся значения.
- Если у узла есть свойство 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); }
Псевдокод обхода пост-заказа:
- Создайте массив переменных для хранения всех значений посещенных узлов.
- Напишите вспомогательную функцию, которая принимает узел и
- Если у узла есть свойство 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); }
Псевдокод обхода по порядку:
- Создайте массив переменных для хранения всех значений посещенных узлов.
- Напишите вспомогательную функцию, которая принимает узел и
- Если у узла есть свойство 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); }
Также читайте