TrieNode 클래스
Coddy의 트라이 - 자료구조 시리즈 #8 코스 레슨 — 14개 중 3번째.
트라이의 모든 노드는 두 가지 정보를 담고 있는 하나의 작은 객체입니다: 여기에 연결된 children (문자에서 다음 노드로의 맵)과 루트에서 이 노드까지의 경로가 삽입된 전체 단어를 형성하는지 여부를 표시하는 플래그인 isEndOfWord입니다.
이것이 클래스의 전부입니다. 값도 없고 키도 없습니다: 트리에서 노드의 위치가 곧 그 의미입니다. 루트에서 c, a, t라는 레이블이 붙은 간선들의 경로가 "cat"을 삽입할 때 isEndOfWord = true로 설정하는 노드에 도달합니다.
이 TrieNode 클래스를 만드는 것부터 시작해 봅시다 - 다음 레슨의 Trie 클래스에서 이것을 사용할 것입니다.
챌린지
쉬움입력을 받지 않는 생성자를 포함하는 TrieNode 클래스를 작성하세요.
다음 두 필드를 초기화하세요:
children을 빈 맵(또는 해당 언어에서 문자와 노드를 매핑하는 동등한 객체)으로 설정합니다.isEndOfWord를 false로 설정합니다.
직접 해보기
#include <stdio.h>
#include "trienode.h"
int main() {
TrieNode* n = TrieNode_new();
printf("%s %s\n",
TrieNode_childrenCount(n) == 0 ? "true" : "false",
n->isEndOfWord ? "true" : "false");
return 0;
}