Деревья на изменяемых узлах: узел знает своих детей и родителя, и его можно менять на месте. Нужна курсам, где разбирают обход дерева и рекурсию.
Парная к ней библиотека @hexlet/immutable-fs-trees решает ту же задачу неизменяемыми структурами: сравнение двух подходов и есть предмет изучения.
npm install @hexlet/treesimport Tree from '@hexlet/trees';
const tree = new Tree('/', 'root directory');
tree.getMeta(); // 'root directory'
const etcNode = tree.addChild('etc');
etcNode.getKey(); // 'etc'
tree.hasChild('etc'); // true
etcNode.getParent() === tree; // true
etcNode.hasChildren(); // false
tree.hasChildren(); // true
const libNode = etcNode.addChild('lib');
libNode === tree.getChild('lib'); // true
libNode === tree.getDeepChild(['etc', 'lib']); // true
etcNode.removeChild('lib'); // true
etcNode.hasChild('lib'); // falseFor more information, see the Full Documentation
This repository is created and maintained by the team and the community of Hexlet, an educational project. Read more about Hexlet.
