假设您希望以递归方式实现广度优先搜索二叉树.你会怎么做?
是否可以仅使用调用堆栈作为辅助存储?
我正在努力学习数据结构并实现以下代码,以便在常规树上进行深度优先遍历/应用回调:
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);
}
};
Run Code Online (Sandbox Code Playgroud)
我怎么能改变这一点,而不是先扩大它?这就是Tree Class的样子:
var Tree = function (value) {
var newTree = {};
newTree.value = value;
newTree.children = [];
extend(newTree, treeMethods);
return newTree;
};
Run Code Online (Sandbox Code Playgroud)