哈希表链接与avl树

时间:2017-11-04 22:01:27

标签: algorithm data-structures hash avl-tree

我正在散列字符串..然后我必须按字母顺序排序第二个字符串。我必须能够在我排序的第二个字符串树中删除,插入或获取位置数。因此,例如我有基于动物类型(猫,狗......)的哈希表,每个桶都有AVL树,其名称按名称排序。

插入( “猫”, “加菲猫”); insert(“cat”,“Zoro”);

加菲尔德和佐罗会有相同的哈希键,因为他们都是猫,但是 加菲尔德将是root和zoro右子..所以当我想要删除加菲尔德时,我必须再次对树进行排序..

我的问题是,如果哈希表+ avl树是最快的选择吗?也像我说我需要能够在类型(散列键)加索引上获得动物名称。

编辑:这只是一个例子,一切都是可变的,并通过函数插入,所以spieces的数量可以是1百万,名字也是

1 个答案:

答案 0 :(得分:0)

通常,如果您的需求包含大量遍历整个表的遍历,并且如果有大量删除或插入而不是搜索操作,则首选AVL树。但是,如果您的需求需要相对较多的搜索操作(相对于插入或删除),那么哈希表是一个非常好的选择..

如果您要进行哈希,其中通过链接进行冲突解决,则数组用于保存密钥和指向树/链接列表的指针(此处为树)。在这种情况下,缺点是内存开销很高,参考局部性较低。