美文网首页Web 前端开发 让前端飞
二叉树遍历(IFE题目)

二叉树遍历(IFE题目)

作者: 始悔不悟 | 来源:发表于2017-07-05 15:25 被阅读0次

二叉树的遍历

今天的题目是模拟对二叉树的遍历,大二本来就学过数据结构这一门课,先序遍历、中序遍历以及后序遍历理解起来真的不难,可是让自己写个代码实现一下还是有点问题的,譬如原来一直以为递归是必须要有返回值的,今天发现只要函数运行结束,即使没有返回值,外层函数也可以继续运行。

成果如图:

动态预览.gif

思路:

1. 先对二叉树进行遍历,按照顺序将节点存入数组
2. 对数组中的节点进行样式处理(排他以及定时器)

遍历代码:

  1. 先序遍历:若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。
先序遍历.gif
 function DLR(node){ //先序遍历
    if(node){ //判断二叉树是否存在,若不存在则结束返回
        nodeArr.push(node); 
        DLR(node.children[0]);
        DLR(node.children[1]);
    }
  }
  1. 中序遍历:若树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结点),中序遍历根结点的左子树,然后是访问根结点,最后中序遍历右子树。
中序遍历.gif
function LDR(node){ 
    if(node){
        LDR(node.children[0]);
        nodeArr.push(node);
        LDR(node.children[1]);
    }
}
  1. 后序遍历:若树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后访问根结点。
后序遍历.gif
function LRD(node){ 
    if(node){
        LRD(node.children[0]);
        LRD(node.children[1]);
        nodeArr.push(node);
    }
}

最后我们得到了按照遍历顺序排序的数组,再进行样式处理,代码如下

function activeNode(arr){
    for(let i=0;i<arr.length;i++){
        setTimeout(function(){
            for(let j=0;j<arr.length;j++){
                arr[j].className="";
            }//清除所有节点样式
            arr[i].className="active";//给当前节点添加样式
        },i*500)//i*500  给定时器创造时间间隔
    }
}

参考资料

相关文章

  • 二叉树遍历(IFE题目)

    二叉树的遍历 今天的题目是模拟对二叉树的遍历,大二本来就学过数据结构这一门课,先序遍历、中序遍历以及后序遍历理解起...

  • 二叉树的蛇形层次遍历(LeetCode.103)

    题目 解析 首先参考二叉树的层次遍历层次遍历二叉树(LeetCode--102二叉树的层次遍历)[https://...

  • 一题一算法2018-02-06(重建二叉树)

    题目:重建二叉树 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍...

  • 题目 一、144. 二叉树的前序遍历 二、94. 二叉树的中序遍历 三、二叉树的后序遍历

  • LeetCode94 二叉树的中序遍历

    题目 二叉树的中序遍历 题目描述 给出一个二叉树 用中序遍历输出 方案 中序遍历:考察到一个节点后,将其暂存,遍历...

  • 面试题7:重建二叉树

    题目一: 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不...

  • 构建求和树——二叉树的构建及遍历

    一、相关概念 二、题目 题目 思路 利用二叉树的前序、中序遍历序列构建二叉树,并遍历构建好的二叉树。 利用递归的思...

  • 面试题32:从上到下打印二叉树

    题目1:不分行从上到下打印二叉树,层次遍历 解析:该问题就是二叉树的层次遍历。 题目2:分行从上到下打印二叉树。 ...

  • 几道和「二叉树」有关的算法面试题

    1. 二叉树的前序遍历 题目来源于 LeetCode 第 144 号问题:二叉树的前序遍历。 题目描述 给定一个二...

  • 07:重建二叉树

    题目07:重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果...

网友评论

    本文标题:二叉树遍历(IFE题目)

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