JavaScript が実装する再帰的トラバーサルおよび非再帰的トラバーサル アルゴリズムのマルチツリーの動作例

韦小宝
リリース: 2018-02-10 10:29:56
オリジナル
1769 人が閲覧しました

この記事では、マルチツリーの再帰的トラバーサルおよび非再帰的トラバーサル アルゴリズムを実装するためのJavaScriptを主に紹介し、JSON ノードの JavaScript マルチツリーの再帰的および非再帰的トラバーサル手法を例の形式で詳細に分析します。 JavaScript に興味がある友人は、この記事を参照してください

この記事では、JavaScript でのマルチツリーの再帰的トラバーサルおよび非再帰的トラバーサル アルゴリズム操作の実装について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

デモ前の準備作業

デモプロジェクトのファイル構造:

index.html

jsonData.js
recurrenceTree.js
noRecurrenceTree.js

各ファイルの説明:

index.html は、デモに使用される HTML ファイルです。

jsonData.jsはマルチツリーのJSONデータを格納します。
recurrenceTree.js の再帰アルゴリズムはツリーを走査します。
noRecurrenceTree.js ツリートラバーサル用の非再帰アルゴリズム。

jsonData.js

/** * 用于演示的 JSON 树形数据结构 */ var root = { name:'D盘', children:[ { name:'学习', children:[ { name:'电子书', children:[ { name:'文学', children:[ { name:'茶馆' }, { name:'红与黑' } ] } ] } ] }, { name:'电影', children:[ { name:'美国电影' }, { name:'日本电影' } ] } ] }
ログイン後にコピー

index.html

       m.sbmmt.com js多叉树遍历       
  递归遍历:  
非递归遍历:
ログイン後にコピー

再帰的トラバーサル

recurrenceTree.js

// 遍历单个节点 function traverseNode(node){ var pObj = document.getElementById("app"); pObj.innerHTML = pObj.innerHTML + " " + node.name; } // 递归遍历树 // 作者:张超 function traverseTree(node){ if (!node) { return; } traverseNode(node); if (node.children && node.children.length > 0) { var i = 0; for (i = 0; i < node.children.length; i++) { this.traverseTree(node.children[i]); } } } traverseTree(root);
ログイン後にコピー

非再帰的トラバーサル

noRecurrenceT ree.js

// 遍历单个节点 function traverseNode2(node){ var pObj2 = document.getElementById("app2"); pObj2.innerHTML = pObj2.innerHTML + " " + node.name; } // 非递归遍历树 // 作者:张超 function traverseTree2(node){ if (!node) { return; } var stack = []; stack.push(node); var tmpNode; while (stack.length > 0) { tmpNode = stack.pop(); traverseNode2(tmpNode); if (tmpNode.children && tmpNode.children.length > 0) { var i = tmpNode.children.length - 1; for (i = tmpNode.children.length - 1; i >= 0; i--) { stack.push(tmpNode.children[i]); } } } } traverseTree2(root);
ログイン後にコピー

この記事は以上ですコンテンツはここにあります。皆さんの JavaScript の学習に役立つことを願っています。 !

関連の推奨事項:

宝くじシステム関数のコード共有のjs実装

この記事では、主に宝くじシステムの詳細、js宝くじシステム関数に関するトピックを、特定の参考価格で紹介しています... .

jsでのajaxアクセスの詳細な例

この記事では、ネイティブjsでのajaxアクセスの詳細な例の関連情報を中心に紹介します。この記事を通じて理論をマスターしていただければ幸いです。

以上がJavaScript が実装する再帰的トラバーサルおよび非再帰的トラバーサル アルゴリズムのマルチツリーの動作例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!