我必须编写一个字典程序作为数据结构和算法本科课程的学期项目,并且我希望找到最合适的解决方案(数据结构)来解决这个问题。
我考虑使用哈希表或trie。有人建议我使用陷阱,但还没有能够调查它们。
我的数据库有大约 10 万个不同的单词及其含义。该程序预计提供的基本功能是插入、更新、删除和搜索单词/定义。如果我设法挤入自动完成和拼写纠正,那将是一个额外的好处。
所以,我的问题是,请记住我的要求,哪种数据结构最适合我的目的。当我说“最佳”时,我要求的是具有最佳运行时复杂性和低成本(内存要求)的数据结构。
另外,我希望能够有一个算法,它返回所有以给定前缀开头的单词。例如,假设我进行了一个函数调用,它应该返回一个以,等dictionary.getWordsStartingWith("fic")
开头的所有单词的列表。我知道如果我将字典实现为 trie,我可以做到这一点,我可以做到这一点,但这可能吗用哈希表来做?fic
fiction
fictitious
fickle