排序二叉树——中序遍历

首先需要遍历一棵二叉树:

<script type="text/javascript">
    function BinaryyTree() {
        var Node=function (key) {              //定义一个节点
            this.key=key;
            this.left=null;
            this.right=null;
        }
        var root =null;
        var insertNode=function (node,newNode) {         //二叉树的实现方法
            if (newNode.key<node.key){
                if (node.left==null){
                    node.left=newNode;
                }else {
                    insertNode(node.left,newNode);
                }
            }else {
                if (node.right==null){
                    node.right=newNode;
                }else {
                    insertNode(node.right,newNode);
                }
            }
        }
        this.insert=function (key) {              //二叉树创建接口
            var newNode= new Node(key);
            if (root===null){
                root=newNode;
            }else {
                insertNode(root,newNode);
            }
        }
        var inOrderTraverseNode=function (node,callback) {         //中序遍历的实现流程
            if (node!==null){
                inOrderTraverseNode(node.left,callback);
                callback(node.key);
                inOrderTraverseNode(node.right,callback);
            }
        }
        this.inOrderTraverse=function (callback) {       //中序遍历的接口
            inOrderTraverseNode(root,callback);
        }
    }
    var node=[7,3,9,5,12,21,18,32];        //创建一个数组
    var binaryyTree= new BinaryyTree();    //构造一颗二叉树
    node.forEach(function (key) {            //创建一颗二叉树
        binaryyTree.insert(key);
    })
    var callback=function (key) {
        console.log(key);
    };
    binaryyTree.inOrderTraverse(callback);
</script>
最后我们在控制台打印结果:
打印结果

陈健的个人博客,记录生活所见所感、学习笔记。专注于Web前端_SEO教程_读书心得。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

返回主页看更多
狠狠的抽打博主 支付宝 扫一扫