二叉 DOM 树的遍历
function Tree() {
var Node = function(key){
this.key = key;
this.left = null;
this.right = null;
}
root =null;
}
前序遍历
首先访问根结点,然后遍历左子树,最后遍历右子树
Tree.prototype.preOrderTraverse = function(callback){
preOrder(root, callback);
}
var preOrder = function(node,callback){
if(node !== null){
callback(node.key);
preOrder(node.left, callback);
preOrder(node.right, callback);
}
}
修改为DOM二叉树:
var preOrder = function(node,callback) {
callback(node);
if(node.firstElementChild) {//先判断子元素节点是否存在
this.preOrder(node.firstElementChild,callback);
}
if(node.lastElementChild) {
this.preOrder(node.lastElementChild,callback);
}
};
中序遍历