//使用Js定义一颗多叉树
var tree = {
name: "a",
childen:[
{
name: "b",
childen: [
{name: "d"},{name: "e"}
]
},{
name: "c",
childen: [{
name: "f"
}]
}
]
};
function handle(root) { console.log(root.name); }//遍历树之后对树进行的相关的处理
function traverseTreeRecur(root) { //递归实现
handle(root);
if(!root.childen || root.childen.length == 0) {
return;
}
if(root.childen && root.childen.length > 0) {
for(var i=0;i<root.childen.length;i++) {
traverseTreeRecur(root.childen[i]);
}
}
}
function traverseTree(root) { //非递归实现
if(!root.childen || root.childen.length == 0) return;
var stack = [];
stack.push(root);
while(stack.length > 0) {
var temp = stack.pop();
handle(temp);
if(temp.childen && temp.childen.length > 0) {
for(var i=temp.childen.length-1;i>=0;i--) {
stack.push(temp.childen[i]);
}
}
}
}
多叉树遍历--面经
最新推荐文章于 2024-09-12 19:02:20 发布