1 // tiempo complejidad de O (NC) N es el número de nodos, C es el tamaño del alfabeto 2 . 3 int Trie [N] [ 26 es ], CNT [N], TOT = 1 ; . 4 // 0 dot tanto raíz , el nodo está vacía . 5 // Trie [] [] de almacenamiento de sub-árbol de cada nodo . 6 // CNT [] almacena el número de palabras al final de cada nodo . 7 . 8 // inserto de una cadena . 9 inline void inserto ( Char * STR) 10 { 11. int P = 1. ; 12 es para ( int I = 0 ; STR [I]; I ++ ) 13 es { 14 int CH STR = [I] - ' A ' ; 15 IF (! Trie [P] [CH]) Trie [P] [CH] ++ = TOT; 16 P = Trie [P] [CH]; . 17 } 18 es CNT [P] ++ ; . 19 } 20 es 21 es // número de veces de cadena de consulta ocurrencia 22 se inline int consulta ( Char * STR) 23 es { 24 int P = 1. ; 25 para ( int I = 0 ; STR [I] ; i ++ ) 26 { 27 int ch = str [i] - ' un ' ; 28 si (trie [p] [ch]!) De retorno 0 ; 29 p = trie [p] [ch]; 30 } 31 de retorno cnt [p]; 32 }