BinTree = function ( root ) {
this.root = root;
}
Node = function ( value , left , right ) {
this.left = left;
this.right = right;
this.value = value;
}
BinTree.prototype.preOrder = function() {
var _preOrder = function ( node ) {
if ( node == undefined ) return ;
console.log( node.value );
_preOrder( node.left );
_preOrder( node.right );
}
_preOrder(this.root);
};
BinTree.prototype.inOrder = function() {
var _inOrder = function ( node ) {
if ( node == undefined ) return ;
_inOrder( node.left );
console.log( node.value );
_inOrder( node.right );
}
_inOrder(this.root);
};
BinTree.prototype.postOrder = function() {
var _postOrder = function ( node ) {
if ( node == undefined ) return ;
_postOrder( node.left );
_postOrder( node.right );
console.log( node.value );
}
_postOrder(this.root);
};
BinTree.prototype.levelOrder = function() {
var _levelOrder = function ( node ) {
var queue = [];
if (node == undefined ) return;
queue.push( node );
while( queue.length > 0 ) {
var p = queue.shift();
console.log( p.value );
if ( p.left != undefined )
queue.push( p.left );
if ( p.right != undefined )
queue.push( p.right );
}
}
_levelOrder(this.root);
};
var zero = new Node(0);
var one = new Node(1);
var two = new Node(2);
var three = new Node(3);
var four = new Node(4);
var five = new Node(5);
var six = new Node(6);
zero.left = one;
zero.right = two;
one.left = three;
one.right = four;
two.left = five;
two.right = six;
var binTree = new BinTree( zero );
binTree.preOrder();
console.log("");
binTree.inOrder();
console.log("");
binTree.postOrder();
console.log("");
binTree.levelOrder();
js 遍历二叉数
最新推荐文章于 2024-06-12 16:23:50 发布