js 二叉树遍历
2018-06-24 02:16:01来源:未知 阅读 ()
二叉树定义这里不再赘述。
我这里有个二叉树:
var tree = { "id": 0, "name": "root", "left": { "id": 1, "name": "Simon", "left": { "id": 3, "name": "Carl", "left": { "id": 7, "name": "Lee", "left": { "id": 11, "name": "Fate" } }, "right": { "id": 8, "name": "Annie", "left": { "id": 12, "name": "Saber" } } }, "right": { "id": 4, "name": "Tony", "left": { "id": 9, "name": "Candy" } } }, "right": { "id": 2, "name": "right", "left": { "id": 5, "name": "Carl", }, "right": { "id": 6, "name": "Carl", "right": { "id": 10, "name": "Kai" } } } };
1.使用前序遍历,并将所有name输出。
function getListWithDLR(node) { if(node){ console.log(node.name); getListWithDLR(node.left); getListWithDLR(node.right); } } getListWithDLR(tree); //调用函数,并把二叉树传进去。
2.使用中序遍历,并将所有name输出。
function getListWithLDR(node) { if(node){ getListWithLDR(node.left); console.log(node.name); getListWithLDR(node.right); } } getListWithLDR(tree);
3.使用后序遍历,并将所有name输出。
function getListWithLRD(node) { if(node){ getListWithLDR(node.left); getListWithLDR(node.right); console.log(node.name); } } getListWithLRD(tree);
原理:使用迭代。
4. 根据name找id。
function findIdByName(name,node) { if(node){ if (node.name === name) { console.log(node.id); } else { findIdByName(name, node.left); findIdByName(name, node.right); } } } findIdByName('Carl',tree);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- jquery遍历筛选数组的几种方法和遍历解析json对象 2020-02-29
- JavaScript实现二叉树的先序、中序及后序遍历方法详解 2020-01-17
- jQuery遍历(2) 2019-08-14
- JS递归及二叉搜索树的移除节点 2019-08-14
- vue动态请求到的多重数组循环遍历,取值问题,如果某个值存 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash