Dictionary 对于字典来说,什么样的数据结构在创建后不会改变,不区分大小写的键查找和支持;用“开始”;
我需要建立一个具有以下特点的词典:Dictionary 对于字典来说,什么样的数据结构在创建后不会改变,不区分大小写的键查找和支持;用“开始”;,dictionary,data-structures,tree,time-complexity,Dictionary,Data Structures,Tree,Time Complexity,我需要建立一个具有以下特点的词典: 创造后永不改变 密钥查找需要不区分大小写 支持“从开始”键查找,其中搜索的字符串前缀将返回一组与该片段关联的项 具有忽略大小写哈希函数的完美哈希映射将满足前两个要求,但不满足最后一个要求 我想的只是一个简单的树,其中每个节点都是存储键的to uppered char,查找匹配项需要遍历树,从搜索字符串中对to upperedchar进行二进制搜索 +---+ +---+ | A |
- 创造后永不改变
- 密钥查找需要不区分大小写
- 支持“从开始”键查找,其中搜索的字符串前缀将返回一组与该片段关联的项
to uppered
char进行二进制搜索
+---+ +---+
| A | | B |
| | | |
+---+ +---------------------+
| | | |
+---+ +---+ +---+ +---+
| N | | A | | E | | U |
| | | | | | | |
+---+ +------+ +---+ +----+
| | | | |
+---+ +---+ +---+ +---+ +---+
| D | | D | | C | | D | | G |
+val| +val| | | +val| +val|
+---+ +---+ +---+ +---+ +---+
|
+---+
| K |
+val|
+---+
这似乎是一个过于简单和幼稚的解决方案。有什么更好的吗?在你的方法中有很多变化:我会考虑一个TIE的“开始”,并且如果你想通过键更快的查找,考虑一个最小的完美哈希。