Я пытаюсь хорошо изучить структуры данных и реализовал следующий код для первого хода/применения обратного вызова на регулярном дереве:
Tree.prototype.traverse = function (callback) {
callback(this.value);
if (!this.children) {
return;
}
for (var i = 0; i < this.children.length; i++) {
var child = this.children[i];
child.traverse(callback);
}
};
Как я могу изменить это, чтобы вместо этого сделать его шириной? Это выглядит класс дерева:
var Tree = function (value) {
var newTree = {};
newTree.value = value;
newTree.children = [];
extend(newTree, treeMethods);
return newTree;
};