javascript二叉搜索树实现

标签 javascript sorting b-tree

<分区>

有人知道用 Javascript 实现简单 BTree 的好例子吗?我有一堆随机到达的“东西”,想有效地插入每一个。

最终,每个新的元素都将根据它在树中的最终位置插入到 DOM 中。

我可以从头开始编写代码,但不想重新发明任何轮子。

谢谢

最佳答案

如果重要的话,我发现将这种数据存储为文字树的效率低于将其存储为已排序的数组并在数组上进行二进制搜索以拼接/插入元素的效率。显然,JavaScript 对象的创建不是免费的。

还有 ol' encode-a-tree-in-an-array 技巧:

[5, 3, 7, 1, null, 6, 9, null, null, null, null, null, null] 

相同
      5
     / \
    3   7
   /   / \
  1   6   9

即 child (N[i]) = N[2i+1], N[2i+2] 。我不知道这是否真的让您在 JavaScript 方面有所收获。

如果您尝试了一些二叉树的替代方案,您能在这里发布您的发现吗? :)

关于javascript二叉搜索树实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331289/

相关文章:

javascript - 在 JavaScript 中使用 for 循环创建对象数组

javascript - 如何将日期选择器的日历设置为始终可见,而且还能够获取所选日期?

javascript - 在 Protractor 测试中引用html元素

C:如何按其元素之一对结构进行排序?不能使用指针

python - 根据主列表对类实例列表进行排序

c++ - 是否有任何 std::set 实现不使用红黑树?

javascript - 我怎样才能告诉这个html代码中的javascript不影响所有按钮?

java - 从最低到最高打印数组而不排序

c# - 有谁知道我在哪里可以找到基于文件的 c# 多路 B 树类?

postgresql - 使用 Postgres 创建 B+ 树并在 B+ 树的节点中添加附加字段