JavaScript实现二叉树节点插入与生成算法详解

作者:异步漫步

时间:2026-10-22

浏览:608

本文详解JavaScript中二叉树的实现原理,重点讲解如何通过Node和BST类插入节点并生成二叉树。通过具体代码示例展示较小值存左、较大值存右的逻辑,并提供在线测试工具及运行结果分析,帮助开发者掌握基础数据结构应用。

文章目录

JavaScript二叉树节点插入与生成示例

本文通过具体实例介绍JavaScript中二叉树的数据结构与算法实现,重点演示如何插入节点以及构建完整的二叉树结构,供读者参考学习。

JavaScript数据结构与算法:节点插入与二叉树生成

在二叉树结构中,数值较小的元素被存储于左子节点,而数值较大的元素则存储于右子节点。

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);

您可以使用在线HTML/CSS/JavaScript代码运行工具(http://tools.jb51.net/code/HtmlJsRun)对上述代码进行测试,从而获得相应的运行结果。

JavaScript二叉树节点插入与生成示例

如需了解更多JavaScript相关内容,建议查阅本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》。

希望本文提供的描述对您的JavaScript程序设计工作有所助益。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章