我想在我的trie数据结构中打印所有值,以及此代码是字典程序的一部分。
void search(struct dictionary **current) {
if((*current)->is_end==1){
printf("\n"); getchar();
}
for(int i=0; i<26; i++){
if((*current)->Children[i]!=NULL){
printf("%c",i+(int)'a');
search(&(*current)->Children[i]);
}
}
}
我想推动价值观。
但是当我运行该代码时,该程序只显示: 失败 LSE
“false”的部分“fa”没有显示,因为如果标记了is_end,则递归不会从头开始。
答案 0 :(得分:0)
每次到达终端节点时,都不需要从开始时重新启动递归。当遍历trie时,你可以使用当前前缀保留缓冲区,并在每次is_end为真时打印整个内容。