function TreeCode() {
let BiTree = function(ele){
this.data = ele;
this.left = null;
this.right = null;
}
this.createTree = function(){
let biTree = new BiTree('A');
biTree.left = new BiTree('B');
biTree.right = new BiTree('C');
biTree.left.left = new BiTree('D');
biTree.left.left.left = new BiTree('G');
biTree.left.left.right = new BiTree('H');
biTree.right.left = new BiTree('E');
biTree.right.right = new BiTree('F');
biTree.right.left.right = new BiTree('I');
return biTree;
}
}
深度优先遍历
function deeptSearch(biTree){
let stack = [];
stack.push(biTree);
while(stack.length != 0){
let node = stack.pop();
console.log(node.data);
if(node.right){
stack.push(node.right);
}
if(node.left){
stack.push(node.left);
}
}
}
广度优先遍历
function wideSearch(biTree){
let queue = [];
queue.push(biTree);
while(queue.length != 0){
let node = queue.shift();
console.log(node.data);
if(node.left){
queue.push(node.left);
}
if(node.right){
queue.push(node.right);
}
}
}
前序遍历
function beforeSearch(biTree){
if(!biTree){
return;
}
console.log(biTree.data);
beforeSearch(biTree.left);
beforeSearch(biTree.right);
}
中序遍历
function centerSearch(biTree){
if(!biTree){
return;
}
centerSearch(biTree.left);
console.log(biTree.data);
centerSearch(biTree.right);
}
后序遍历
function afterSearch(biTree){
if(!biTree){
return;
}
afterSearch(biTree.left);
afterSearch(biTree.right);
console.log(biTree.data);
}