Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <string>#include <vector>#include <cstring>#include <algorithm>#include <functional>using namespace std;const int N = 26;struct Node {Node() : terminal(false) {memset(alpha, NULL, sizeof(alpha));}bool terminal;Node* alpha[N];};void insert(Node* root, string& word) {Node* p = root;for (char c : word) {int id = c - 'a';if (p->alpha[id] == NULL) {p->alpha[id] = new Node;}p = p->alpha[id];}p->terminal = true;}bool search(Node* root, string& word) {