博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript数据结构与算法--二叉树(插入节点、生成二叉树)
阅读量:6759 次
发布时间:2019-06-26

本文共 1559 字,大约阅读时间需要 5 分钟。

javascript数据结构与算法-- 插入节点、生成二叉树

二叉树中,相对较小的值保存在左节点上,较大的值保存在右节点中

 

 

 

/**二叉树中,相对较小的值保存在左节点上,较大的值保存在右节点中*** *//*用来生成一个节点*/function Node(data, left, right) {    this.data = data;//节点存储的数据    this.left = left;    this.right = right;    this.show = show;}function show() {    return this.data;}/*用来生成一个二叉树*/function BST() {    this.root = null;    this.insert = insert;}/*将数据插入二叉树    (1)设根节点为当前节点。    (2)如果待插入节点保存的数据小于当前节点,则设新的当前节点为原节点的左节点;反    之,执行第4步。    (3)如果当前节点的左节点为null,就将新的节点插入这个位置,退出循环;反之,继续    执行下一次循环。    (4)设新的当前节点为原节点的右节点。    (5)如果当前节点的右节点为null,就将新的节点插入这个位置,退出循环;反之,继续    执行下一次循环。* */function insert(data) {    var n = new Node(data, null, null);    if (this.root == null) {        this.root = n;    }    else {        var current = this.root;        var parent;        while (true) {            parent = current;            if (data < current.data) {                current = current.left;//待插入节点保存的数据小于当前节点,则设新的当前节点为原节点的左节点                if (current == null) {
//如果当前节点的左节点为null,就将新的节点插入这个位置,退出循环;反之,继续执行下一次while循环。 parent.left = n; break; } } else { current = current.right;//待插入节点保存的数据小于当前节点,则设新的当前节点为原节点的左节点 if (current == null) { parent.right = n; break; } } } }}var nums = new BST();nums.insert(23);nums.insert(45);nums.insert(16);nums.insert(37);nums.insert(3);nums.insert(99);nums.insert(22);console.log(nums);

 

转载于:https://www.cnblogs.com/baiyangyuanzi/p/6693854.html

你可能感兴趣的文章
华为oj之字符串反转
查看>>
数据访问
查看>>
JSP里面的虚拟目录
查看>>
【329】word 替换文本高级用法
查看>>
自动化测试用例编写原则
查看>>
crontab定时任务以及其中中文乱码问题
查看>>
CSAPP buffer lab记录——IA32版本
查看>>
Hyperledger fabric多机的环境部署
查看>>
关于sqlserver2008 bcp根据数据表导出xml格式文件的小记
查看>>
总结:栈和队列的学习
查看>>
线段树(可能还会有树状数组吧)
查看>>
Android应用程序内部启动Activity过程(startActivity)的源代码分析
查看>>
《Python从小白到大牛》第9章 数据结构
查看>>
Xcode中四种build for 的区别
查看>>
酷客多小程序百城宣讲会-嵊州站完美落幕
查看>>
搞机年代,ivvi用“爱情”细分市场
查看>>
思科路由器开机进入 miniIOS 的原因分析
查看>>
卢松松:性格决定网站风格
查看>>
Management Console 工具管理类软件通用开发框架(开放源码)
查看>>
Gnome 3.2 发布计划及新功能
查看>>