/*
实现一颗树
结点类:Tree
包含左子树left,右子树right,根节点root,缺省为null
构造设置value
树类:Trees
构造:默认根节点为null
insert:
如果当前根节点不存在,则将传进来的节点存为根节点
如果当前根节点存在,执行InsertTree
insertTree(rootNode,newTree):
1 如果新树value小于根节点value,放到根节点的左边,如果根节点左子树已经存在,以根节点左子树为根节点继续递归
2 如果新树value大于等于根节点value,放到根节点右边,如果根节点右子树已经存在,以根节点右子树为根节点继续递归
*/
class Tree {
left = null;
right = null;
root = null;
constructor(_value) { this.value = _value;}
}
class Trees {
constructor() { this.root = null; }
insert(value) {this.root ? this.insertTree(this.root, new Tree(value)) : this.root = new Tree(value);}
insertTree(rootNode, newTree) {
newTree.value < rootNode.value ?
(rootNode.left ? this.insertTree(rootNode.left, newTree) : rootNode.left = newTree)
:
(rootNode.right ? this.insertTree(rootNode.right, newTree) : rootNode.right = newTree);
}
}
let tree = new Trees();
for (let i = 20; i > 0; i -= 2) {
tree.insert(i - 1);
tree.insert(i);
}
console.log(tree);

最新文章

  1. NOIP2012国王游戏
  2. PHPExcel中open_basedir restriction in effect的解决方法
  3. Java知多少(19)访问修饰符(访问控制符)
  4. VS生成事件
  5. vitamio框架
  6. 标准库biset
  7. Java虚拟机14:Java对象大小、对象内存布局及锁状态变化
  8. Numpy1
  9. ready()事件;使外置JS代码正常运行
  10. Bootstrap图像
  11. Python爬虫:HTTP协议、Requests库
  12. 实验:输入一篇英文新闻,以“#”结束,统计其中a-z这26个字母各出现的次数和总字符个数。(不区分大小写)
  13. CSS-calc 兼容写法
  14. web程序快速开发
  15. Python3基础 bool类型变量赋值
  16. JDBC 与 Bean Shell的使用(二)获取值,并且断言
  17. #001 WebStrom SVN使用技巧
  18. Python基础:内置函数
  19. 链队列的C++实现
  20. AWT从概念产生到完成实现只用了一个月

热门文章

  1. Codeforces Round #624 (Div. 3) B. WeirdSort(排序)
  2. $ ssh -T -v git@github.com_在本地用ssh连接github出错_git@github.com: Permission denied (publickey).
  3. 微信小程序 scroll-view 左右横向滑动没有效果(无法滑动)问题
  4. 95. 不同的二叉搜索树 II、96. 不同的二叉搜索树
  5. thinkphp一些经常用到的标签
  6. rabbitmq快速安装(实测有效)(新版)
  7. JS高级---案例贪吃蛇,把封装的函数移动到js文件中
  8. Docker Compose 使用示例
  9. at org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmplImpl.renderNoFlush(BackupMasterStatusTm
  10. 每天进步一点点------如何实现Sobel Edge Detector? (Image Processing) (C/C++)