国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript實現二叉樹的先序、中序及后序遍歷方法詳解

2024-05-06 15:25:06
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript實現二叉樹的先序、中序及后序遍歷方法。分享給大家供大家參考,具體如下:

之前學數據結構的時候,學了二叉樹的先序、中序、后序遍歷的方法,并用C語言實現了,下文是用js實現二叉樹的3種遍歷,并以動畫的形式展現出遍歷的過程。

整個遍歷過程還是采用遞歸的思想,原理很粗暴也很簡單

先序遍歷的函數:

function preOrder(node){  if(!(node==null)){    divList.push(node);    preOrder(node.firstElementChild);    preOrder(node.lastElementChild);  }}

中序遍歷的函數:

function inOrder(node) {  if (!(node == null)) {    inOrder(node.firstElementChild);    divList.push(node);    inOrder(node.lastElementChild);  }}

后序遍歷的函數:

function postOrder(node) {  if (!(node == null)) {    postOrder(node.firstElementChild);    postOrder(node.lastElementChild);    divList.push(node);  }}

顏色變化函數:

function changeColor(){  var i=0;  divList[i].style.backgroundColor = 'blue';  timer=setInterval(function(argument){    i++;    if(i<divList.length){      divList[i-1].style.backgroundColor="#fff";      divList[i].style.backgroundColor="blue";    }    else{      divList[divList.length-1].style.backgroundColor="#fff";    }  },500)}

核心代碼如上,本來想寫深度優先遍歷和廣度優先遍歷。后來發現二叉樹深度優先遍歷和先序遍歷相同。改日總結一下樹的BFS和DFS。

全部代碼如下:

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title></title>  <style>    .root{      display: flex;      padding: 20px;      width: 1000px;      height: 300px;border: 1px solid #000000;      margin: 100px auto;      margin-bottom: 10px;      justify-content: space-between;    }    .child_1{      display: flex;      padding: 20px;      width: 450px;      height: 260px;border: 1px solid red;      justify-content: space-between;    }    .child_2{      display: flex;      padding: 20px;      width: 170px;      height: 220px;border: 1px solid green;      justify-content: space-between;    }    .child_3{      display: flex;      padding: 20px;      width: 35px;      height: 180px;border: 1px solid blue;      justify-content: space-between;    }    input{      margin-left: 100px;      width: 60px;      height: 40px;      font:20px italic;    }  </style></head><body><div class="root">  <div class="child_1">    <div class="child_2">      <div class="child_3"></div>      <div class="child_3"></div>    </div>    <div class="child_2">      <div class="child_3"></div>      <div class="child_3"></div>    </div>  </div>  <div class="child_1">    <div class="child_2">      <div class="child_3"></div>      <div class="child_3"></div>    </div>    <div class="child_2">      <div class="child_3"></div>      <div class="child_3"></div>    </div>  </div></div><input type="button" value="先序"><input type="button" value="中序"><input type="button" value="后序"><script type="text/javascript" src="遍歷.js"></script></body></html>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 罗城| 桐庐县| 秦皇岛市| 万州区| 个旧市| 呼伦贝尔市| 方山县| 紫金县| 普兰店市| 罗平县| 武平县| 平原县| 大同市| 昌平区| 得荣县| 光泽县| 保亭| 云霄县| 香港| 金沙县| 九江市| 建瓯市| 新龙县| 神农架林区| 鄱阳县| 芦溪县| 宿松县| 伽师县| 台南市| 苍山县| 利川市| 永兴县| 峡江县| 乌苏市| 婺源县| 绵阳市| 夹江县| 正宁县| 天津市| 玉屏| 江口县|