从JavaScript好的部分(修改):
var walk_the_DOM = function walk(node, func) {
func(node);
node = node.firstChild;
while(node) {
walk(node, func);
node = node.nextSibling;
}
}
我很难分析这个。 DOM调用很简单。
它似乎是深度优先,因为每个深度级别都会重复调用walk()
。
如果确实是深度优先,首先是什么样的深度 - 预购,有序或后期订购?
以下是tree traversal上的维基百科。
答案 0 :(得分:2)
深度优先。因为它总是试图遍历每个递归调用的更深层次。
答案 1 :(得分:2)
它是DFS。
这里func是节点上发生的一些动作。因此,就考虑树遍历而言,我们可以简单地删除func。简化的遍历是:
function walk(node) {
node = node.firstChild;
while(node)
{
walk(node);
node = node.nextSibling;
}
}
现在很容易注意到,您正在为当前节点的所有子节点逐个调用函数“walk”。此函数在完成所有子节点的“行走”时返回。这是DFS的财产。