zoukankan      html  css  js  c++  java
  • 字典树

     

     

    HDU 1251

    代码
    #include<iostream>
    using namespace std;

    const int kind=26;//字母种类

    struct Treenode//树的结点结构
    {
    int count;//这个附加变量在本题中记录遍历到该结点形成的字符串出现的次数,在不同题中可记录不同的内容。
    Treenode *next[kind];//指向儿子结点
    Treenode()//每个结点的初始化
    {
    count
    =1;
    for(int i=0;i<kind;i++)
    next[i]
    =NULL;
    }
    };

    void insert(Treenode *&root,char *word)//向以root为根结点的树中插入串word
    {
    Treenode
    *location=root;
    int i=0,branch=0;

    if(location==NULL) {location=new Treenode();root=location;}

    while(word[i])
    {
    branch
    =word[i]-'a';
    if(location->next[branch]) location->next[branch]->count++;//如果该字符存在,串数量加1
    else location->next[branch]=new Treenode();//如果不存在,建新结点
    i++;
    location
    =location->next[branch];
    }
    }

    int search(Treenode *root,char *word)//查找,与插入类似
    {
    Treenode
    *location=root;
    int i=0,branch=0,ans;

    if(location==NULL) return 0;

    while(word[i])
    {
    branch
    =word[i]-'a';
    if(!location->next[branch]) return 0;
    i
    ++;
    location
    =location->next[branch];
    ans
    =location->count;
    }
    return ans;
    }
    int main()
    {
    char word[10];
    char ask[10];
    Treenode
    *root=NULL;
    while(gets(word))
    {
    if(word[0]=='\0') break;
    insert(root,word);
    }
    while(gets(ask))
    cout
    <<search(root,ask)<<endl;
    return 0;
    }
  • 相关阅读:
    progID
    windbg
    msil_accessibility_b03f5f7f11d50a3a_6.1.7600.16385_none_2232298e4f48d6ba
    jupybook编程快捷键
    django遇到的error(待续)
    python 遇到error(待续)
    前端 遇到error(待续)
    sql语句组件 在框架中的应用
    django models分页
    Python的学习之旅———用户与程序交互
  • 原文地址:https://www.cnblogs.com/ACAC/p/1782198.html
Copyright © 2011-2022 走看看