b-tree相关内容

btree 实现中的分段错误

任何人都可以帮助消除此分段错误.我在这个代码上工作了一周仍然无法调试它.这段代码是一个 Btree 实现.插入部分工作正常,但删除时出现分段错误.我无法调试它,有人可以帮忙吗? 我已根据此链接给出输入(已将字母值转换为 ASCII 值)http://cis.stvincent.edu/html/tutorials/swd/btree/btree.html 当我删除第一个 H(等效 AS ..
发布时间:2022-01-12 15:34:55 其他开发

Java On-Memory 高效键值存储

我存储了 1.11 亿个键值对(一个键可以有多个值 - 最大 2/3),其键是 50 位整数,值是 32 位(最大)整数.现在,我的要求是: 快速插入(键、值)对[允许重复] 基于键快速检索值. 这里 基于MultiMap.但是,我想在主内存中存储更多的键值对,而没有/很少的性能损失.我从网络文章中研究了 B+ 树、R+ 树、B 树、紧凑型多重映射等可以是一个很好的解决方案.谁能帮帮 ..
发布时间:2022-01-08 14:05:48 Java开发

什么时候选择RB树、B-Tree或AVL树?

作为程序员,我什么时候应该考虑使用 RB 树、B 树或 AVL 树?在决定选择之前需要考虑哪些关键点? 有人可以为每个树结构解释一个场景,为什么会参考关键点选择它而不是其他树结构吗? 解决方案 加点盐: 当您管理超过数千个项目并从磁盘或某些慢速存储介质对它们进行分页时,请使用 B 树. RB 树,当您在树上进行相当频繁的插入、删除和检索时. 当您的插入和删除相对于您 ..
发布时间:2022-01-05 19:03:38 其他开发

Java 中的 B+Tree 磁盘实现

有谁知道在哪里可以找到磁盘上的 B+Tree 实现?我前后浏览了谷歌,不幸的是我找不到任何明智的东西.其他线程建议可能从 sqlite、sqljet 或 bdb 中获取树,但这些树嵌套在整个数据库中,您不能真正“仅仅"过滤掉 B+树.我真的只是在寻找一个磁盘上的 B+树......没有任何花哨的东西. 解决方案 有一个受 GDBM 启发的 Java 持久化引擎:MapDB ..
发布时间:2022-01-05 18:45:46 Java开发

B 树与哈希表

在MySQL中,索引类型是b-tree,访问b-tree中的元素是在对数分摊时间O(log(n)). 另一方面,访问哈希表中的元素是O(1). 为什么不使用哈希表代替 b 树来访问数据库中的数据? 解决方案 您只能通过哈希表中的主键访问元素.这比使用树算法(O(1) 而不是 log(n))要快,但您不能选择范围(x 和 y 之间的所有内容).树算法在 Log(n) 中支持这一点 ..

在 C++ 或 C 中寻找基于磁盘的 B+ 树实现

我正在寻找一种使用磁盘文件存储树的轻量级开源分页 B+ 树实现. 到目前为止,我只找到了基于内存的实现,或某些东西 依赖于 QT (?!) 甚至无法编译. 现代 C++ 是首选,但 C 也可以. 我更喜欢避免完全可嵌入的 DBMS 解决方案,因为:1) 对于我的需求,可以使用最简单的磁盘文件组织的裸骨索引就足够了,不需要并发性、原子性和其他一切.2)我用它来设计我自己的索引,很可 ..
发布时间:2021-12-22 08:18:39 C/C++开发

什么是 C 中好的开源 B 树实现?

我正在寻找用 C 语言编写的 B 树库的精简且构造良好的开源实现.它需要在非 GPL 许可下才能用于商业应用程序.理想情况下,该库支持将 B 树索引作为磁盘文件进行存储/操作,以便可以使用可配置(即:最小)RAM 占用空间构建大型树. 注意:由于似乎有些混淆,所以二叉树和 B 树不是同一回事. 解决方案 查看 QDBM:http://fallabs.com/qdbm/.它是 LGPL ..
发布时间:2021-12-22 08:18:30 其他开发

填字游戏搜索的最佳数据结构

我有一个用于解决填字游戏的大型数据库,其中包含一个单词和一个描述.我的应用程序允许搜索特定长度的单词和特定位置的字符(这是一种艰难的方式......遍历所有单词并检查每个单词).加上按描述搜索(如有必要) 例如找到单词 _ _ A _ _ B(6 个字母的单词,第三个字符 A 和最后一个 B) 我想以搜索速度非常快的方式对单词进行索引.我的第一个想法是使用平衡的树结构,还有其他建议吗? ..
发布时间:2021-12-21 23:37:38 其他开发

是否有任何工具可以估算 MongoDB 中的索引大小?

我正在寻找一种工具来根据以下几个信号对 Mo​​ngoDB 索引的大小进行适当的估计: 我的收藏中有多少文档 索引字段的大小 如果不是 ObjectId,我使用的 _id 的大小 地理位置/非地理位置 有没有人偶然发现这样的事情?我可以想象,一旦 Mongo 遇到内存墙并且文档开始被分页到磁盘时,它的性能就会下降,我可以想象它会非常有用.如果我有一个正常运行的数据库并且想要添加另 ..
发布时间:2021-12-21 23:35:54 其他开发

将 Btrees 保存到磁盘文件并读取它

我想在磁盘文件中保存一个 Btree(不确定是二进制的).然后将其读入内存.一些Level-order 遍历对于二叉Btree 可能是一个好方法.但如果它不是二进制的.我在内存中建立了从叶节点到根节点的 Btree.我相信我必须在磁盘文件中定义一些结构并输出树节点.使用一些额外的标签来标识文件中的节点?如何遍历可能是这里的关键问题.我想不出保存节点和指针的好方法.然后阅读它.在内存中构建树.有什么 ..
发布时间:2021-12-21 23:31:49 其他开发

B 树索引如何在 mysql 中工作

当我为 mysql 中的表创建索引时,我看到 index_type 是 BTREE 类型.现在虽然我了解 btree(s),但我不太明白它如何存储索引以及数据库如何基于此搜索记录. 我的意思是,btree 非常适合数据库执行读取和写入大数据块,当我们为 Primary key 的列类型创建索引时,我的理解是,它创建了一棵树并根据根的值类型拆分根的值. 现在,它是只存储树下的主键 ID ..
发布时间:2021-12-20 14:11:08 数据库

是否有任何 B 树程序或站点可以直观地显示 B 树的工作原理

我发现这个网站可以让您从 B 树中插入和删除项目,并直观地向您展示 B 树的样子: java b-tree 我正在寻找与此类似的其他网站或程序.该站点不允许您指定 4 阶(4 个指针和 3 个元素)的 B 树,它只允许您指定具有偶数个元素的 B 树.另外,如果可能的话,我希望能够插入字母而不是数字. 我想我实际上找到了一个不同的网站,但那是前一段时间了,现在找不到了. 解决 ..
发布时间:2021-12-15 15:29:44 其他开发

按级别打印 BTree

我正在尝试创建一个为 BTree 设置动画的 Java 小程序.我有创建树的代码,但现在我正在尝试显示它.我认为最简单的方法是按级别打印,但我不知道如何.下面的代码是我的节点的构造函数.另外,如果有人对展示我的树有更好的建议,我将不胜感激. /***************************************************************************** ..
发布时间:2021-11-16 22:36:07 Java开发

按级别打印 BTree

我正在尝试创建一个为 BTree 设置动画的 Java 小程序.我有创建树的代码,但现在我正在尝试显示它.我认为最简单的方法是按级别打印,但我不知道如何.下面的代码是我的节点的构造函数.另外,如果有人对展示我的树有更好的建议,我将不胜感激. /***************************************************************************** ..
发布时间:2021-11-16 22:31:52 Java开发

这 B+ 树有效吗?

在 B+ 树中,是否可以存在非叶节点以删除其键值?这意味着 B+ 树在其中间非叶节点中具有值,但在其任何叶节点中都没有. 考虑以下结构.我在学习 B+ 树时遇到了这个问题.在该结构中,13 不是叶节点.但它是一个非叶节点.(实际上它在之前的说明中被删除了.链接图片.在此链接中转到页面底部) 如果是,那么为什么数据被删除了? 这是一个错误还是我遗漏了什么? 解决方案 您发布 ..
发布时间:2021-09-09 19:36:37 其他开发

B+树打印元素是顺序

我正在尝试自己实现 B+ 树,但我想创建一个方法来打印 B+ 树具有哪些元素.如果我使用遍历(按顺序或后顺序),我也会得到父节点中的元素,因此我会有重复的值.有没有办法解决这个问题?谢谢 解决方案 在遍历节点时标记节点.节点一旦被标记,就不能被遍历. ..
发布时间:2021-09-09 19:30:15 其他开发

在 SQL Server 中查找表的 B 树的高度

由于数据库数据在一个B-tree中以8k页的形式组织,同样对于PK信息信息,数据库中的每个表都应该可以计算B-Tree的高度.从而揭示达到特定数据需要多少次跳跃. 由于行大小和 PK 大小都很重要,因此很难计算,因为例如 varchar(250) 不需要占用 250 字节. 1) 有没有办法从 SQL Server 中获取信息?2)如果没有,是否可以使用一些分析数据库表的代码来粗略估计 ..
发布时间:2021-06-21 18:41:40 数据库

如何遍历Btree?

我有一个Btree,我想弄清楚它的遍历方式,以便按键按升序显示. 我能弄清楚的是,这可以通过递归函数来完成. 要执行的伪代码是什么? 解决方案 假设您的定义如下: 模板类btree_node{btree_node ** child;//子节点数组T **元素;//此节点中的元素unsigned int child_count;//子女数//元素数量比chi ..
发布时间:2021-05-09 20:31:30 C/C++开发

维护“链接"将B +树写入磁盘时?

我已经在Java中实现了B +树的实现,但是像往常一样,它完全在主内存中.如何将B +树存储到磁盘上?btree的每个节点都包含指向其子节点的指针(主内存地址或对对象的引用),当Btree驻留在磁盘上时,我如何实现类似的目的?在b +树在磁盘上的情况下,什么替换b +树节点中的主内存地址? 这里已经发布了类似的问题: Java中的B + Tree磁盘实现 但是我不完全理解答案. ..
发布时间:2021-04-30 20:50:31 其他开发

B树适合自动建议/自动完成Web表单吗?

自动建议/完成字段在整个网络上使用.谷歌似乎已经掌握了它,因为只要搜索查询中的一种类型,建议就几乎立即返回. 我假设用于实现此目的的框架涉及Web层上的快速内存数据存储.我们正在基于零售产品构建Grails应用程序,因此用户可以搜索 Can ,其中应该建议诸如 Canon , Cancun 之类的内容,并想知道缓存在内存中的Java B树是否足以满足通过AJAX作为JSON返回的快速自动完成 ..
发布时间:2021-04-12 20:13:15 其他开发