Data structures B树键的值存储在哪里?

Data structures B树键的值存储在哪里?,data-structures,tree,hashmap,b-tree,Data Structures,Tree,Hashmap,B Tree,我一直在研究B-树来存储大约10k个字符串,每个字符串都有一个唯一的id,我认为它可以作为我的密钥。但我看到的每个实现都只显示B树中的键,而不是值。我确信B-Tree在充当map时必须将值链接到键,但我无法理解它们是否与键一起存储在树的节点中。比如说 ||key3| |key6|| / | \ / ||key4| |key5|| \ / \ ||key1| |key

我一直在研究B-树来存储大约10k个字符串,每个字符串都有一个唯一的id,我认为它可以作为我的密钥。但我看到的每个实现都只显示B树中的键,而不是值。我确信B-Tree在充当map时必须将值链接到键,但我无法理解它们是否与键一起存储在树的节点中。比如说

       ||key3|   |key6||
     /         |          \
    /   ||key4| |key5||    \
   /                        \
||key1| |key2||         ||key7| |key8||


我不确定这些值是如何存储的以及存储在哪里的。

在每个节点中,包括内部节点和叶节点,以及键

在B+树中,叶节点中的所有键都可用。因此,在拆分叶节点的情况下,您只能将键推送到父节点,并为自己保留值。但是,在B树中,键不会重复,因此您必须在内部节点中具有值


对于特定于树的函数,可以使用键值映射并迭代它的键。由于需要保持键排序,所以应该使用排序的映射,如java中的TreeMap或简单的STD::C++映射。(Python在标准库中没有类似的功能。)它们还可以帮助轻松拆分节点并将内容推送到新节点

所以,如果我想存储10K组字符串,每组大约有10个单词,其中一个单词是唯一的ID,那么第二个表示法是否可以正确地构建B树?是的,我期待进行排序实现,我可以在节点内使用SortedHashMap来存储密钥吗?你能指出任何可视化方法来理解为存储在外部存储器(如文件)而非主存储器中的信息构建B-树吗?依我看,第二种表示法是正确的。没有听说过SortedHashMap,你在说什么语言?据我所知,哈希映射不可能被排序。对于可视化。通过SortedHashMap,我指出了一个疑问,B树节点是否可以按排序顺序(即升序)存储密钥,但密钥需要经过哈希处理,因为它们是长度超过20的长整数。另一个我在看树状图,好像一切都在做。我以前说过除了散列。
       ||k3,v3| |k6,v6||
     /         |         \
    /   ||k4,v4||k5,v5||  \
   /                       \
||k1,v1| |k2,v2||         ||k7,v7| |k8,v8||