Maison >interface Web >js tutoriel >Exemples d'implémentation JavaScript d'algorithmes de parcours récursif et de parcours non récursif pour plusieurs arbres
Cet article présente principalement JavaScript pour implémenter les algorithmes de parcours récursif et non récursif des multi-arbres. Il analyse également en détail les opérations liées au parcours récursif et non récursif des multi-arbres JavaScript pour. json sous forme d'exemples. Conseils, les amis intéressés par JavaScript peuvent se référer à
Cet article décrit l'exemple de JavaScript implémentant des opérations d'algorithme de parcours récursif et non récursif de multi-arbres. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Préparation avant présentation
Projet de démonstration La structure du fichier :
index.html
jsonData.js
recurrenceTree.js
noRecurrenceTree.js
Expliquez chaque fichier :
index.html est un fichier HTML utilisé à des fins de démonstration.
jsonData.js stocke les données JSON du multi-arbre.
L'algorithme récursif recurrenceTree.js parcourt l'arbre.
Algorithme non récursif noRecurrenceTree.js pour la traversée d'arbres.
jsonData.js
/** * 用于演示的 JSON 树形数据结构 */ var root = { name:'D盘', children:[ { name:'学习', children:[ { name:'电子书', children:[ { name:'文学', children:[ { name:'茶馆' }, { name:'红与黑' } ] } ] } ] }, { name:'电影', children:[ { name:'美国电影' }, { name:'日本电影' } ] } ] }
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="renderer" content="webkit"/> <meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1"> <meta http-equiv="Cache-Control" content="max-age: 31536000"> <title>www.php.cn js多叉树遍历</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="wap-font-scale" content="no"> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="description" content=""> <script type="text/javascript" src="jsonData.js"></script> </head> <body> 递归遍历:<span id="app"></span> <script type="text/javascript" src="recurrenceTree.js"></script> <hr> 非递归遍历:<span id="app2"></span> <script type="text/javascript" src="noRecurrenceTree.js"></script> </body> </html>
Parcours récursif
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);
Parcours non récursif
noRecurrenceTree.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);
C'est tout pour ça article Tout le contenu, j'espère qu'il pourra être utile à tous ceux qui apprennent JavaScript ! !
Recommandations associées :
Implémentation JS du partage de code de fonction du système de loterie
Cet article est principalement pour tout le monde Une introduction détaillée aux fonctions du système de loterie js sur un sujet sur le système de loterie, avec un certain prix de référence....
Exemples détaillés d'accès ajax en js
Le contenu principal de cet article Permettez-moi de vous présenter les informations pertinentes sur l'explication détaillée des exemples d'accès ajax en js natif. J'espère qu'à travers cet article vous pourrez maîtriser la théorie....
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!