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);
        }
    }

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

  • 相关阅读:
    两种&
    安装版Windows是必须的
    检验CSS3.0兼容性的有趣东东
    Quadro和Geforce系列的区别
    ECMAScript
    多拉A梦的CSS(6) :not
    多拉A梦的CSS(1) Transform
    表单
    关于a元素的伪类
    多拉A梦的CSS(4) gradient
  • 原文地址:https://www.cnblogs.com/hess/p/6626147.html
Copyright © 2011-2022 走看看