JavaScript实现二叉树的先序、中序及后序遍历方法详解
本文实例讲述了JavaScript实现二叉树的先序、中序及后序遍历方法。分享给大家供大家参考,具体如下:
之前学数据结构的时候,学了二叉树的先序、中序、后序遍历的方法,并用C语言实现了,下文是用js实现二叉树的3种遍历,并以动画的形式展现出遍历的过程。
整个遍历过程还是采用递归的思想,原理很粗暴也很简单
先序遍历的函数:
functionpreOrder(node){ if(!(node==null)){ divList.push(node); preOrder(node.firstElementChild); preOrder(node.lastElementChild); } }
中序遍历的函数:
functioninOrder(node){ if(!(node==null)){ inOrder(node.firstElementChild); divList.push(node); inOrder(node.lastElementChild); } }
后序遍历的函数:
functionpostOrder(node){ if(!(node==null)){ postOrder(node.firstElementChild); postOrder(node.lastElementChild); divList.push(node); } }
颜色变化函数:
functionchangeColor(){ vari=0; divList[i].style.backgroundColor='blue'; timer=setInterval(function(argument){ i++; if(i核心代码如上,本来想写深度优先遍历和广度优先遍历。后来发现二叉树深度优先遍历和先序遍历相同。改日总结一下树的BFS和DFS。
全部代码如下: