A simple implementation of Trie for ASCII characters in C++.
Insertion and membership testing should take O(n) time, where n is the number of characters in the input string.
TrieNode *take()
is provided should the user wants to operate directly on nodes, perhaps creating copy of node pointers.