繁体   English   中英

通用B树,用于存储自定义对象/数据类型

[英]Generic B-Tree to store custom objects/data types

我想要一个B树,它可以存储任何类型的数据。 甚至自定义对象和数据类型。 例如:我可能存储一些整数,一些字符串(例如:jack,jill等),甚至一些自定义对象(MyClass obj1,obj2等)。

我想知道的是,如何插入/删除/搜索对象并维护Tree? 我可以将比较运算用于整数,但是其他类型(例如字符串,自定义对象等)呢?

我也想知道,设计班级的最佳方法是什么? 我可以想到两种选择:

  1. 我使用一个类模板,并为每个模板写专门化的文字。 这确实很麻烦,对我来说最不希望这样做。

  2. 我使用带有虚拟get / set方法的Tree Node使用抽象基类。 每个节点将具有唯一的整数“键”属性,该属性可用于“树”操作中的比较。 我所有的数据类型都必须从此类中派生。 在这种情况下,我可以编写一个compare()来比较键。 我在这里看到的一个主要缺点是密钥的维护,这将需要另一个ds,例如堆栈。

让我知道您对最佳方法的意见。 提前致谢 !!

在节点中声明一个空指针,如下所示。 您可以在其中存储任何类型的地址的位置。 但是在搜索树时,您必须检查每种类型,

void* val;

node->val = pointer of a int //ok
node->val = pointer of a char//ok
node->val = pointer of a object including user define type//ok

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM