二叉树的遍历规则二

原文链接:https://www.jianshu.com/p/768892e095bf
我的理解:参考建树的方式和创建原型方法的方式。
【二叉树的遍历规则二】二叉树的常用遍历为前序遍历,中序遍历,后序遍历,三种遍历方法仅仅是交换了代码的运行顺序而已,代码如下:

function Node(data,left,right){ this.data=https://www.it610.com/article/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);

    推荐阅读