사용법 #include <iostream> #INCLUDE < 문자열 > #INCLUDE <알고리즘> 사용 스페이스 성병; 클래스 노드 { 공개 : 노드 * 다음 [ 26 ] 부울 isend; 노드 () { 위해 ( int로 I = 0 ; I는 < 26 ; I ++ ) { 다음 [I] = NULL; } isend = 거짓 ; } ~ 노드 () {} }; 수업트라이 { 공개 : / * * 여기에 데이터 구조를 초기화합니다. * / 노드 * 루트; 트라이 () { 루트 = 새로운 노드 (); } / * * 트라이에 단어를 insts. * / 무효 이달 ( 문자열 워드) { 기지국 * p =의 뿌리; 위한 ( int로 I = 0 ; I는 <) (word.size 단계; 내가 ++ ) { 경우 (P-!> 다음 [단어 [I] - ' ' ]) P -> 다음 [워드 [I] - '' ] = 새 ) (노드; P = P-> 다음 [워드 [I] - ' ' ]; } P -> isend = 참 ; } / * * 반환 단어가 트라이에있는 경우. * / 부울 SE ( 문자열 단어) { 노드 * P는 = 루트; 위한 ( int로 I = 0 ; I는 <) (word.size 단계; 내가 ++ ) { 경우 (! P-> 다음 [단어 [I]는 - ' ' ]) 반환 거짓 ; P= P-> 다음 [워드 [I] - ' ' ]; } 리턴 P-> isend; } / * * 주어진 접두사로 시작하는 트라이 어떤 단어가 있으면 돌려줍니다. * / BOOL startsWith ( 문자열 접두어) { 기지국 * p =의 뿌리; 위한 ( int로 I = 0 ; I는 <) (prefix.size 단계; 내가 ++ ) { 경우 (! P-> 다음 [프리픽스 [I]는 - ' ' ]) 반환 거짓 ; P = P-> 다음 [프리픽스 [I] - ' ' ]; } 반환 사실 ; } }; INT 본체 ( 무효 ) { 트리는 *의 트라이 = 새로운 트리는 (); 트라이 -> INST ( " 사과 " ); COUT << trie-> SE ( " 애플 " ) << ' ' ; // 返回진정한 COUT << trie-> SE ( " 애플리케이션 " ) << ' ' ; // 返回거짓 COUT << trie-> ' ' ; // 返回사실 trie-> INST ( " 응용 프로그램 " ); COUT << trie-> SE ( " 애플리케이션 " ) << ' ' ; // 返回진정한 반환 0 ; } / * * * 귀하의 트리는 객체가 같은 인스턴스 및 호출됩니다 : * 트리는 * OBJ = 새로운 트리는 (); *를 OBJ> 이달 (워드); BOOL * PARAM_2를 OBJ => SE (워드); BOOL * param_3를 OBJ => startsWith (접두사); * /