Модель
Узел + дети (или left/right для бинарного):
class TreeNode {
constructor(value, children = []) {
this.value = value;
this.children = children;
}
}
function dfs(node, visit) {
visit(node);
for (const child of node.children) dfs(child, visit);
}
function bfs(root) {
const q = [root];
while (q.length) {
const n = q.shift();
q.push(...n.children);
}
}
Где во фронте
DOM — дерево; virtual DOM; файловые деревья; меню; JSON произвольной вложенности.
Темы senior
Баланс (AVL/Red-Black) редко нужны в UI; чаще — обходы, поиск пути, immutable update вложенного узла, мемоизация поддеревьев.