数据结构与算法javascript描述(三) 二叉查找树 先序,中序,后续遍历

/* 
实现二叉查找树  Node类 BST类
*/

function Node(){
    this.data = data;
    this.left = left;
    this.right = right;
    this.show = show;
}
function show(){
    return this.data;
}
function BST(){
    this.root = null;
    this.insert = insert;
    this.inOrder = inOrder; //中序
    this.postOrder = postOrder;
    this.preOrder = preOrder;

}
function insert(data){
     var n = new Node(data,null,null);
     if(this.root == null){
        this.root = n;
     }
     else{
        var current = this.root;
        var parent;
        while(true){
            parent = current;
        while(data < current.data){
            current = current.left;
            if(current ==null){
                parent.left = n;
                break;
            }
        }

             else{
                current = current.right;
                if(current ==null){
                    parent.right = n;
                    break;
                }   
            }
         }
     }
}

  function inOder(node){
    if(!(node ==null)){
        inOder(node.left);
        putstr(node.show() + " ");
        inOrder(node.right);
    }
  }

//先序
function preOrder(node) {
if (!(node == null)) {
    putstr(node.show() + " ");
    preOrder(node.left);
    preOrder(node.right);
    }
}
//后序
function postOrder(node) {
    if (!(node == null)) {
    postOrder(node.left);
    postOrder(node.right);
    putstr(node.show() + " ");
    }
}

测试

var nums = new BST();
nums.insert(23);
nums.insert(45);
nums.insert(16);
nums.insert(37);
nums.insert(3);
nums.insert(99);
nums.insert(22);
console.log("Inorder traversal: ");
inOrder(nums.root);
console.log("preOrder traversal: ");
preOrder(nums.root);
console.log("Postorder traversal: ");
postOrder(nums.root);
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值