JavaScript和树(一)

任务描述

  • 参考示例图,在页面中展现一颗二叉树的结构
  • 提供一个按钮,显示开始遍历,点击后,以动画的形式呈现遍历的过程
  • 二叉树的遍历算法和方式自定,前序中序后序皆可,但推荐可以提供多种算法的展示(增加多个按钮,每个按钮对应不同的算法)
  • 当前被遍历到的节点做一个特殊显示(比如不同的颜色)
  • 每隔一段时间(500ms,1s等时间自定)再遍历下一个节点

 

 

先制作一个二叉树的结构和按钮组

通过flex布局,

justify-content: center;//水平居中

align-items: center;//垂直居中

 

然后设计遍历,https://segmentfault.com/a/1190000000740261#articleHeader11有关遍历介绍

需要将树结构进行遍历,显示出遍历的颜色

首先进行树的遍历,把遍历顺序记录在数组中,然后根据数组顺序,进行颜色变化

 

//先序遍历

function preOrder(node){

    if(!node == null){

        putstr(node.show()+ " ");

        preOrder(node.left);

        preOrder(node.right);

    }

}

//前序遍历

           function preOrder(node){

                 if(node !=null){

                      data.push(node);

                preOrder(node.firstElementChild);

                preOrder(node.lastElementChild);

                 }

           }

 

head取出数组中的节点数据;并将对应的节点的颜色进行修改

head = data.shift();//删除并返回数组的第一个元素

                 if(head){

                      head.style.backgroundColor = "#ff0000";

                      timer = setTimeout(function(){

                            head.style.backgroundColor = "#fff";

                            show();

                      },500);

                 }

 

完整:https://github.com/moeeliu/ife/blob/master/js7.html

 

posted @ 2017-03-03 16:55  刘爽_杭州  阅读(337)  评论(0编辑  收藏  举报