435
Студентов
84%
Завершения
В данном испытании мы будем использовать двоичное дерево, и выполнять агрегацию данных.
Node.js
Реализуйте следующие методы в классе:
getCount()
— возвращает количество узлов в дереве.getSum()
— возвращает сумму всех ключей дерева.toArray()
— возвращает одномерный массив содержащий все ключи.toString()
— возвращает строковое представление дерева.every(fn)
— проверяет, удовлетворяют ли все ключи дерева условию, заданному в передаваемой функции.some(fn)
- проверяет, удовлетворяет ли какой-либо ключ дерева условию, заданному в передаваемой функции.
При обходе дерева нужно использовать порядок слева-направо. То есть вначале обрабатываем ключ узла, затем ключ левого ребёнка, после чего ключ правого ребёнка.
Примеры
const tree = new Node(9,
new Node(4,
new Node(8),
new Node(6,
new Node(3),
new Node(7))),
new Node(17,
null,
new Node(22,
null,
new Node(20))));
tree.getCount() // 9
tree.getSum(); // 96
tree.toArray(); // [9, 4, 8, 6, 3, 7, 17, 22, 20]
tree.toString(); // '(9, 4, 8, 6, 3, 7, 17, 22, 20)'
tree.every((key) => key <= 22); // true
tree.every((key) => key < 22); // false
tree.some((key) => key < 4); // true
tree.some((key) => key > 22); // false
Подсказки
- Двоичное дерево
- Для реализации каждого из методов потребуется выполнить обход всех узлов дерева.
- Вспомните принцип работы метода reduce для массивов.
Для полного доступа к испытанию нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.