在一次采访中有人问我如何设计牛津英语词典。
我告诉他我将使用TREE数据结构,但是他回答说它将占用大量内存。那么应该使用哪个其他数据结构?
最佳答案
我听说过去曾经在手机中使用一种数据结构来存储T9字典(嗯,这仅解决了关键问题,而没有解决定义存储问题):
对条目进行排序,并且每个条目都应以与上一个条目的偏移量开始,该偏移量应从该位置开始,并从该位置继续。例如:
apple
4icable
7tion
将解码为苹果,适用的应用程序。但是,这与合并链的尝试可能没有什么不同,请参阅
appl -> e
-> ica -> ble
-> tion
维基百科揭示了Directed acyclic word graph,它不同于树,它不仅分支,而且分支可以合并,其中词具有相同的后缀。实际上,这可能是一个出色的存储。
a
/ \
pplic utom
\ /
ation
关于java - 设计牛津英语词典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8453515/