JavaScript二叉树的递归遍历方法
二叉树是由根节点,左子树,右子树组成,左子树和友子树分别是一个二叉树。
下面是一个二叉树的例子:
{ "ruleId":"", "name":"客户年龄大于20", "id":"root", "expression":"age>20", "yes":{ "name":"客户年龄大于25", "id":"root-true", "expression":"age>25", "yes":{ "name":"可贷金额为五万", "id":"root-true-true", "expression":"money = 50000" }, "no":{ "name":"可贷金额为三万", "id":"root-true-false", "expression":"money = 30000" } }, "no":{ "name":"客户年龄小于18", "id":"root-false", "expression":"age<18", "yes":{ "name":"不可贷款", "id":"root-false-true", "expression":"money = 0" }, "no":{ "name":"可贷金额为一万", "id":"root-false-false", "expression":"money = 10000" } } }
1)先序遍历
function preorder(data){ if(data){ console.log(data.name); preorder(data.yes); preorder(data.no) } }
2)中序遍历
function preorder(data){ if(data){ preorder(data.yes); console.log(data.name); preorder(data.no) } }
3)后序遍历
function preorder(data){ if(data){ preorder(data.yes); preorder(data.no); console.log(data); } }
这三种都属于深度优先遍历,因为优先往深处访问。