Trie树(字典树)

//trie树
//字典树 查找字符串 
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
struct uio{
    int son[27],val;//son[a]保存是否存在编号为a的子节点是否存在 val保存以该节点为尾节点的字符串权值 
}trie[1001];
int n,cnt;
void insert(char* a,int v)//a为字符串 v为该字符串权值 
{
    int num=1,len=strlen(a);
    for(int i=0;i<len;i++)
    {
        int c=int(a[i]-'a');
        if(!trie[num].son[c])//无此子节点 
            trie[num].son[c]=cnt++;//新建节点 
        num=trie[num].son[c];//向下走 
    }
    trie[num].val=v;//仅尾节点有权值 
}
int search(char* a)
{
    int num=1,len=strlen(a);
    for(int i=0;i<len;i++)
    {
        int c=int(a[i]-'a');
        if(!trie[num].son[c])
            return 0;
        else
            num=trie[num].son[c];
    } 
    return trie[num].val;
} 
void do_something()
{
    return;
}
int main()
{
    cin>>n;
    do_something();
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/water-radish/p/9280693.html