这种树是用边来存储信息(字母),节点仅表示第i个位置。因此每个节点最多延伸出26条边(加假如只有小写的话)
节点可以定义为:
struct trie_node{
bool end; // 是否是单词的结尾
int pos; // 当前node存放在node[]数组中的位置
int arr[26]; // 当前node下存在哪些边
map<int, int> mp; // 当前node下的边->存放在node[]数组中的位置
};
为什么需要node[]数组:因为一个struct trie_node里面不能直接定义trie_node arr[26]; 是个死局哇,所以只能用静态的方式存储node,而不能用动态指针