我们的类(class)作业是为字典建立树索引。基本思想是按字母顺序读取(一次)每个单词,并为每个节点的每个字母创建一个节点(前提是该路径尚不存在)。
例如 cab、cat、cats 应变为 (c (a (b) (t (s))))
;此外,如果字母对应于单词的结尾,则应该有一个指向翻译的指针:
(c /no trans/ (a /no trans/ (b /taxi/) (t /feline/ (s /several felines/))))
最后,使用的链表结构是基本的 C 示例:
struct node {
void * data;
node * next;
}
当使用树时,从 void * 回传时,有什么方法可以区分 /feline/
和 (s/several felines/)
吗?根据需要添加或不添加翻译,或者将指向翻译的字段添加到链表结构是唯一合理的解决方案?
最佳答案
我向结构添加了一个字段
struct node {
void * data;
node * next;
char * translation;
}
关于回退无效 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591383/