博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 二叉树遍历
阅读量:5209 次
发布时间:2019-06-14

本文共 1979 字,大约阅读时间需要 6 分钟。

二叉树定义这里不再赘述。

我这里有个二叉树:

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": "Carl",        },        "right": {            "id": 6,            "name": "Carl",            "right": {                "id": 10,                "name": "Kai"            }        }    }};

1.使用前序遍历,并将所有name输出。

function getListWithDLR(node) {    if(node){        console.log(node.name);        getListWithDLR(node.left);        getListWithDLR(node.right);    }}getListWithDLR(tree); //调用函数,并把二叉树传进去。

2.使用中序遍历,并将所有name输出。

function getListWithLDR(node) {    if(node){        getListWithLDR(node.left);        console.log(node.name);        getListWithLDR(node.right);    }}getListWithLDR(tree);

3.使用后序遍历,并将所有name输出。

function getListWithLRD(node) {    if(node){        getListWithLDR(node.left);        getListWithLDR(node.right);        console.log(node.name);    }}getListWithLRD(tree);

原理:使用迭代。

4. 根据name找id。

function findIdByName(name,node) {    if(node){        if (node.name === name) {            console.log(node.id);        } else {            findIdByName(name, node.left);            findIdByName(name, node.right);        }    }}findIdByName('Carl',tree);

 

转载于:https://www.cnblogs.com/yadiblogs/p/9164571.html

你可能感兴趣的文章
JDBC+MYSQL初始学习
查看>>
[2014-9-13]委托多线程
查看>>
hibernate查询之后用el表达式取值时遇到的问题
查看>>
win10,anconda, python3.6安装dlib19.17
查看>>
Web —— 在自己电脑搭建网站,发布到公网,并使用域名访问
查看>>
Coursera Algorithms Programming Assignment 1: Percolation(100分)
查看>>
DirectX学习笔记一 #数学基础
查看>>
【JAVA】【JVM】内存结构
查看>>
Date工具类
查看>>
kafka 客户端 consumer 配置参数
查看>>
Windows XP SP3 VC6环境下成功编译openssl-0.9.8zh
查看>>
vim入门
查看>>
SQL记录-PLSQL字符串
查看>>
PLECS 第四周
查看>>
程序员常用6 个 Python 的日期时间库
查看>>
elixir中的truth和true
查看>>
CNN- 数据预处理
查看>>
zbb20170728 oracle 查看被锁对象
查看>>
配置BeanUtils包,同时也是对导入第三包的步骤说明
查看>>
CodeForces 366C Dima and Salad
查看>>