js二分查找树实现
2024-09-23 14:12:51
function BinaryTree() { var Node = function(key) { this.key = key; this.left = null; this.right = null; } var root = null; var insertNode = function(node, newNode) { if (newNode.key < node.key){ if(node.left === null) { node.left = newNode; } else { insertNode(node.left, newNode); } } else { if (node.right === null) { node.right = newNode; } else { insertNode(node.right, newNode); } } } this.insert = function(key) { var newNode = new Node(key); if(root === null){ root = newNode; } else { insertNode(root, newNode) } } this.inOrderTraverseNode = function(node,callback){ if(node !==null) { inOrderTraverseNode(node.left,callback); callback(node.key); inOrderTraverseNode(node.right,callback) } } this.inOrderTraverse = function(callback) { inOrderTraverseNode(root,callback) } } ,,,,,,,,]; var binaryTree = new BinaryTree(); nodes.forEach(function(key){ binaryTree.insert(key); }); var callback = function(key) { console.log(key) } binaryTree.inOrderTraverse(callback);
最新文章
- 剑指Offer面试题:2.二维数组中的查找
- SQL一次查出多个字段的COUNT值
- MEF(Managed Extensibility Framework )的入门介绍
- php表单中如何获取单选按钮与复选按钮的值
- Emmet插件比较实用常用的写法
- Tomcat的JVM优化
- 使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
- ios第三方工具
- HBase -ROOT-和.META.表结构(region定位原理)
- javascript 代码放在head和body的区别
- ROS(indigo)ROSPlan框架
- 内连接查询 (select * from a join b on a.id = b.id) 与 关联查询 (select * from a , b where a.id = b.id)的区别
- Net开发的部分知名网站案例
- 安全测试&#160;一次关于WEB的URL安全测试
- interface关键字定义接口
- hdu 2049 不easy系列之(4)——考新郎
- Android UiAutomator UiDevice API
- POJ 1062 昂贵的聘礼(枚举限制条件——Dijkstra算法)
- mysql 优化海量数据插入和查询性能
- CSS 高度(css height)