JavaScript二叉树的递归遍历方法

Posted HeSh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
    }
}

这三种都属于深度优先遍历,因为优先往深处访问。

以上是关于JavaScript二叉树的递归遍历方法的主要内容,如果未能解决你的问题,请参考以下文章

C语言,如何用非递归方法输出二叉树的根到所有叶子路径?

c++如何用非递归的算法去创建二叉树,有没有分层建立二叉树的方法

二叉树的非递归遍历

遍历二叉树的递归与非递归代码实现

144_二叉树的前序遍历

Java递归方法遍历二叉树的代码