zoukankan      html  css  js  c++  java
  • 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);
        }
    }

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

  • 相关阅读:
    C语言中 单引号与双引号的区别
    Linux主分区,扩展分区,逻辑分区的联系和区别
    fdisk
    df du 的区别
    filesystem
    git clone
    curl
    HDR 高动态范围图像
    source ~/.bashrc 什么意思
    linux 挂载
  • 原文地址:https://www.cnblogs.com/hess/p/6626147.html
Copyright © 2011-2022 走看看