trie数据结构通常是以英文存储字符串的好方法。它的工作原理是构建一棵树,每个边都用一个字母标记,并且树中标记节点的路径指出数据结构中的一个单词。英语以外的其他语言的尝试的限制和替代方法?
这个数据结构在英语中运行良好,因为英文字母中只有26个字母(“合理的”分支因子),这些字符具有连续的ASCII值(因此子指针可以存储在数组键入的通过每个孩子使用的字母的索引),并且有许多英文单词具有共同的前缀(所以在结构中有很多冗余)。
我是一位母语为英语的人,其他语言和字母的知识水平有限,但其中许多属性似乎并不适用于其他语言。例如,我知道法语,西班牙语,德语和匈牙利语经常使用不与Unicode空间中的其余字母连续存储的重音字符。希伯来语和阿拉伯语的元音标记通常在每个字母的上方或下方标出。中文使用的是一个语标系统,韩文韩文字符由三个小字符组合而成。
对于以这些语言和字母存储的数据,Do尝试仍然有效吗?对这类数据使用try有必要进行哪些更改(如果有的话)?是否有任何数据结构对那些特别适合他们的语言和字母的字符串起作用,但在英语中不会有用或有效?
沿着输入清洗的路线,对于字迹书写系统来说,似乎使用罗马字符可能会有所帮助。 – Nuclearman 2014-12-13 19:11:50
@核心人:如果你有一本好字典,我想罗马字会有所帮助。从未给过多少思考。有趣的想法。 – 2014-12-13 21:27:38
另一种方法是注意每个字符都可以通过为该语言设计的键盘上的特定键组合来生成。应该可以进行反向查找以找到特定的组合。虽然这也需要一种字典。 – Nuclearman 2014-12-14 01:06:35