字母树
- 字母树的概念
- 字母树实现的数据结构
字母树的概念
字母树也称字典树,Trie,根结点为空,主要的思想就是向下插入结点,如果该节点存在就共享,不存在就新建一个节点,下面举一个简单的例子:
例:对b, abc, abd, bcd, abcd, efg, hii 建立Trie树
![]()
插入的字符串将位于根结点,查询的时间复杂度为O(len),len为待查询的字符串的长度。
字母树实现的数据结构
struct Node
{
string name;
Node *son[10];
}
Node * root;
void Insert(char num[11], string name)
{
Node * cur = root;
for(int i = 0; i < 11; i ++)
{
int digit = num[i] - '0';
if(cur -> son[digit] == NULL)
{
cur -> son[digit] = new (Node);
}
cur = cur -> son[digit];
}
cur->name = name;
}