-2
나는 trie에 포함 된 단어를 인쇄하고 단어가 발생한 시간을 기록하는 코드 작업을하고 있습니다. 단어가 트라이에 추가 될 때 편지가 관련 노드의 요소에 저장되는 것이 가장 효과적인 방법이라고 생각했습니다. Occurrences는 기본적으로 단어의 끝을 알리는 플래그이며 단어의 마지막 문자 (단어 수를 나타냄) 인 경우 증분됩니다.인쇄 내용과 C에서 Trie의 수
이 시점에서 나는 지금 당장하고있는 직선보다는 노드의 모든 자식을 검사하는 루프를 얻는 방법을 찾고 있지만 어떻게 작동하는지 시각화 할 수는 없습니다. 아이디어? 지금
if(root != NULL) {
printf("%c\n", &root->letter);
printf("%d\n", &root->occurences);
int i;
for (i = 0; i < 26; i++) {
printTrie(root->children[i]); /* <-- Recursion */
}
}
,이 루트
첫, 각각의 그 값의 값을 출력합니다 :
struct Node{
char letter;
struct Node children[26];
int occurences;
};
printTrie(struct node root){
int i = 1;
while(root[i] != NULL){
fprint(root.letter);
printTrie(root->children[]);
}
i++;
}
. 'root [i]'는'struct' * anything * 인'root'에는 유효하지 않습니다. 코드리스트에는 제공되지 않는 신비한'struct node'가 훨씬 적습니다. * 실제 * 코드를 게시하십시오. * please *. – WhozCraig
포인터를 나타내는 여러 별표 (*)가 누락 된 것처럼 보입니다. 'struct Node' 안에'struct Node' 배열을 가질 수 없습니다; 우주는 구조를 견디기에 충분하지 않습니다. 'struct Node *'의 배열 ('struct Node'에 대한 포인터)을 가질 수 있습니다. 당신은 함수 호출도 아마'struct Node * root'를 가져야 만합니다 - 현재 값으로'struct node'를 취합니다. 그러나'struct node'가 어떻게 보이는지 보지 못했습니다. (C는 대소 문자를 구별하는 언어입니다). –