JavaScript實(shí)現(xiàn)樹的遍歷算法示例【廣度優(yōu)先與深度優(yōu)先】
本文實(shí)例講述了JavaScript實(shí)現(xiàn)樹的遍歷算法。分享給大家供大家參考,具體如下:
<script type="text/javascript"> var t = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]; //下面這段深度優(yōu)先搜索方法出自Aimingoo的【JavaScript語(yǔ)言精髓與編程實(shí)踐】 var deepView = function(aTree,iNode) { (iNode in aTree) && (document.write(aTree[iNode]+'<br/>'),arguments.callee(aTree,2*iNode+1),arguments.callee(aTree,2*iNode+2)) } //廣度優(yōu)先 var wideView = function(aTree,iNode) { var aRTree = aTree.slice(0),iRNode = iNode,iLevel = 1; (iRNode in aRTree) && document.write(aRTree[iRNode]+'<br/>'); (function() { var iStart = iRNode*2+1,iEnd = iStart+Math.pow(2,iLevel); document.write(aRTree.slice(iStart,iEnd).join(',')+'<br/>'); if(iEnd>=aRTree.length) return; iRNode = iStart,iLevel++,arguments.callee(); })() } document.write('<h3>二叉樹 深度優(yōu)先</h3>'); //深度優(yōu)先 deepView(t,0); document.write('<h3>二叉樹 廣度優(yōu)先</h3>'); //廣度優(yōu)先 wideView(t,0); </script>
運(yùn)行結(jié)果:
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 詳解JavaScript中的forEach()方法的使用
- js中的for如何實(shí)現(xiàn)foreach中的遍歷
- JavaScript forEach()遍歷函數(shù)使用及介紹
- javascript forEach通用循環(huán)遍歷方法
- Javascript數(shù)組循環(huán)遍歷之forEach詳解
- javascript forEach函數(shù)實(shí)現(xiàn)代碼
- 關(guān)于JavaScript中forEach和each用法淺析
- jQuery each和js forEach用法比較
- jsp簡(jiǎn)單自定義標(biāo)簽的forEach遍歷及轉(zhuǎn)義字符示例
- JavaScript樹的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法示例
- JavaScript實(shí)現(xiàn)多叉樹的遞歸遍歷和非遞歸遍歷算法操作示例
- JS實(shí)現(xiàn)手寫 forEach算法示例
相關(guān)文章
微信小程序使用toast消息對(duì)話框提示用戶忘記輸入用戶名或密碼功能【附源碼下載】
這篇文章主要介紹了微信小程序使用toast消息對(duì)話框提示用戶忘記輸入用戶名或密碼功能,結(jié)合實(shí)例形式詳細(xì)分析了toast組件實(shí)現(xiàn)消息提示功能的相關(guān)操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2017-12-12原生JS+CSS實(shí)現(xiàn)炫酷重力模擬彈跳系統(tǒng)的登錄頁(yè)面
今天小編給大家分享基于原生JS實(shí)現(xiàn)一個(gè)炫酷的登錄頁(yè)面,實(shí)現(xiàn)效果有點(diǎn)像重力模擬彈跳系統(tǒng),效果非常棒,需要的朋友參考下實(shí)現(xiàn)代碼吧2017-11-11值得學(xué)習(xí)的JavaScript調(diào)試技巧分享
這篇文章主要給大家介紹了一些JavaScript調(diào)試技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06JavaScript中閉包的作用和應(yīng)用場(chǎng)景
這篇文章將給大家詳細(xì)介紹JavaScript?中閉包是什么,有哪些應(yīng)用場(chǎng)景,文章通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值,需要的朋友可以參考下2023-09-09BootstrapValidator實(shí)現(xiàn)表單驗(yàn)證功能
這篇文章主要為大家詳細(xì)介紹了BootstrapValidator實(shí)現(xiàn)表單驗(yàn)證功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-1127個(gè)JavaScript數(shù)組常見方法匯總與實(shí)例說(shuō)明
這篇文章主要介紹了JavaScript數(shù)組常見方法匯總與實(shí)例說(shuō)明包括數(shù)組修改,數(shù)組增加,數(shù)組遍歷,數(shù)組排序等操作,需要的朋友可以參考下2022-12-12