美文网首页
二叉树:先序遍历、中序遍历、后序遍历

二叉树:先序遍历、中序遍历、后序遍历

作者: newway_001 | 来源:发表于2019-01-09 11:32 被阅读0次

    数据:

    var tree = {
                "id": 0,
                "name": "root",
                "left": {
                    "id": 1,
                    "name": "Simon",
                    "left": {
                        "id": 3,
                        "name": "Carl",
                        "left": {
                            "id": 7,
                            "name": "Lee",
                            "left": {
                                "id": 11,
                                "name": "Fate"
                            }
                        },
                        "right": {
                            "id": 8,
                            "name": "Annie",
                            "left": {
                                "id": 12,
                                "name": "Saber"
                            }
                        }
                    },
    
                    "right": {
                        "id": 4,
                        "name": "Tony",
                        "left": {
                            "id": 9,
                            "name": "Candy"
                        }
                    }
                },
    
                "right": {
                    "id": 2,
                    "name": "right",
                    "left": {
                        "id": 5,
                        "name": "Carl2",
                    },
                    "right": {
                        "id": 6,
                        "name": "Carl3",
                        "right": {
                            "id": 10,
                            "name": "Kai"
                        }
                    }
                }
            }
    

    先序遍历输出所有name值:

    var backsD = [];
    
            function getListWithDLR(node) {
    
                if (node) {
                    backsD.push(node.name);
                    getListWithDLR(node.left);
                    getListWithDLR(node.right);
                }
            }
            getListWithDLR(tree);
            console.log('backsD:'+backsD.join());
    

    输出结果图解:


    先序遍历.png

    中序遍历输出所有name值:

    var backsL = [];
    
            function getListWithLDR(node) {
                if (node) {
                    getListWithLDR(node.left);
                    backsL.push(node.name);
                    getListWithLDR(node.right);
                }
            }
            getListWithLDR(tree);
            console.log('backsL:'+backsL.join());
    

    输出结果图解:

    中序遍历.png

    后序遍历打印所有name值:

    // 把这个对象中所有的名字以“后序遍历”的方式全部输出到console中
            var backsR = [];
    
            function getListWithLRD(node) {
                if (node) {
                    getListWithLRD(node.left);
                    getListWithLRD(node.right);
                    backsR.push(node.name);
                }
            }
            getListWithLRD(tree);
            console.log('backsR:'+backsR.join());
    
    

    输出顺序图解:

    后序遍历.png

    相关文章

      网友评论

          本文标题:二叉树:先序遍历、中序遍历、后序遍历

          本文链接:https://www.haomeiwen.com/subject/wlmwrqtx.html