前中后序遍历:
var tree = {
"id": 0,
"name": "root",
"left": {
"id": 1,
"name": "Simon",
"left": {
"id": 3,
"name": "Carl",
"left": {
"id": 7,
"name": "Lee",
"left": {
"id": 11,
"name": "Fate"
}
},
"right": {
"id": 8,
"name": "Annie",
"left": {
"id": 12,
"name": "Saber"
}
}
},
"right": {
"id": 4,
"name": "Tony",
"left": {
"id": 9,
"name": "Candy"
}
}
},
"right": {
"id": 2,
"name": "right",
"left": {
"id": 5,
"name": "Carl",
},
"right": {
"id": 6,
"name": "Carl",
"right": {
"id": 10,
"name": "Kai"
}
}
}
}
console.log('---------前序排序----------');
function binaryTreeFront(node){
console.log(node.id);
if(node.left){
binaryTreeFront(node.left);
}
if(node.right){
binaryTreeFront(node.right);
}
}
binaryTreeFront(tree); //前序遍历也是深度遍历。Front
console.log('---------中序排序----------');
function binaryTreeMiddle(node){
if(node.left){
binaryTreeMiddle(node.left);
}
console.log(node.id);
if(node.right){
binaryTreeMiddle(node.right);
}
}
binaryTreeMiddle(tree); //中序排序 Middle
console.log('---------后序排序----------');
function binaryTreeBehind(node){
if(node.left){
binaryTreeBehind(node.left);
}
if(node.right){
binaryTreeBehind(node.right);
}
console.log(node.id);
}
binaryTreeBehind(tree); //后序排序 behind