我想实现一个m-way搜索树,我需要实现m-way搜索树的基础知识。任何人都可以为我提供良好的资源,帮助我实现同样的目标吗?
答案 0 :(得分:1)
大多数m-way搜索树通过在每个节点中按排序顺序存储(m-1)个键来工作。然后,这些值将元素分成m个区域:m-2个区域位于(m-1)个键之间,一个区域小于最左侧的键,一个区域大于最大的键。例如,四向树中的节点可能如下所示:
1 3 7
x < 1 1 < x < 3 3 < x < 7 7 < x
要实现搜索,请从树的根开始,并将该元素与存储在节点中的每个值进行比较。根据它所属的组,报告节点被找到或下降到适当的子节点。
插入和删除节点背后的实际机制取决于您使用的多路树的类型,就像在二叉搜索树中插入和删除的方式因树的类型(AVL,展开,红/黑等)而异)。一个好的起点可能是B-tree,也许是最着名的m路树。着名的CLRS教科书有一整章专门用于结构,这将是算法细节的优秀资源。
希望这有帮助!
答案 1 :(得分:0)
也许你想找一棵三元树?三元树就像数据结构一样,但就像patricia trie或暴击位树一样,它使用B树作为类型或树模型。卡丁车也是一个很好的起点。