美文网首页
用js实现二叉树的遍历

用js实现二叉树的遍历

作者: 星月西 | 来源:发表于2017-03-18 10:09 被阅读1286次

二叉树的常用遍历为前序遍历,中序遍历,后序遍历,三种遍历方法仅仅是交换了代码的运行顺序而已,代码如下:

function Node(data,left,right){
    this.data=data;
    this.left=left;
    this.right=right;
}

function Tree(){
    this.root=null;
}

Tree.prototype={

    //创建二叉树
    create: function(){
        var b=new Node(2,new Node(4),new Node(5));
        var c=new Node(3,new Node(6),new Node(7));
        this.root=new Node(1,b,c);
    },

    //前序遍历
    preTravel: function(root){
        if(root==null){
            return;
        }

        console.log(root.data);
        this.preTravel(root.left);
        this.preTravel(root.right);
    },

    //中序遍历
    middleTravel: function(root){
        if(root==null){
            return;
        }

        this.middleTravel(root.left);
        console.log(root.data);
        this.middleTravel(root.right);
    },

    //后序遍历
    postTravel: function(root){
        if(root==null){
            return;
        }

        this.middleTravel(root.left);
        this.middleTravel(root.right);
        console.log(root.data);
    }    
}

一开始的时候,准备为这些遍历方法传入一个默认参数this.root结果发现会导致死循环,最后发现是因为,后面会将undefined作为参数传入,此时会自动使用默认参数,进入死循环。
另外,定义原型方法时,调用另一个原型方法时,要在this作用域中查找。
测试代码如下:

var tree=new Tree();
tree.create();
tree.preTravel(tree.root);
tree.middleTravel(tree.root);
tree.postTravel(tree.root);

相关文章

  • 二叉树三种遍历的递归和非递归实现&层次遍历实现(C++)

    对于二叉树的三种遍历方式(先序、中序、后序),用递归和非递归(栈)的方式实现,对于后序遍历用队列实现。 四种遍历方...

  • 二叉树遍历

    1.层次遍历(广度优先遍历) 用队列实现,队首出队,队首的子节点入队。 1,二叉树的层次遍历, 打印 2,二叉树的...

  • Java二叉树的遍历

    Java二叉树的遍历 利用递归和非递归实现二叉树的先序,中序,后序遍历以及使用队列实现二叉树的层次遍历

  • 2018-11-28JS遍历Table的所有单元格内容

    用JS去遍历Table的所有单元格中的内容,可以用如下JS代码实现:

  • leetcode-day13-平衡二叉树[剑指 Offer 55

    今日的题目,我之前文章有写过,前序中序后序都在这篇文章里 js实现二叉树的前序遍历,中序遍历,后续遍历[https...

  • 算法之二叉树

    二叉树之C++实现 创建二叉树 复制二叉树 先序遍历 递归实现 非递归实现 中序遍历 递归实现 非递归实现 后序遍...

  • 2018-11-19

    今天在电脑上用c语言实现了二叉树的创建,并且采用递归算法的形式进行二叉树的先序遍历和中序遍历以及后序遍历。

  • python实现二叉树

    递归实现二叉树 堆实现二叉树前序遍历

  • 二叉树的递归遍历(java版)

    1. 场景需求 二叉树如图 java中利用递归实现二叉树的各种遍历 前序遍历 中序遍历 后序遍历 3.代码实现 3...

  • 数据结构:树的实现和遍历(c++)

    (一)二叉树的遍历——递归实现 二叉树常见的遍历方式分为前序遍历、中序遍历和后序遍历。 1 前序遍历 前序遍历也叫...

网友评论

      本文标题:用js实现二叉树的遍历

      本文链接:https://www.haomeiwen.com/subject/rhrunttx.html