zoukankan      html  css  js  c++  java
  • 字典数模板

    #include<stdio.h>
    #include
    <string.h>
    #define 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[101][10];
    char ask[10];
    Treenode
    *root=NULL;
    int n,i;
    scanf(
    "%d",&n);
    for(i=0;i<n;i++)
    {
    scanf(
    "%s",word[i]);
    insert(root,word[i]);
    }
    while(scanf("%s",ask)!=EOF)
    {
    printf(
    "%d\n",search(root,ask));
    }
    return 0;
    }
  • 相关阅读:
    页面get请求 中文参数方法乱码问题
    java版ftp简易客户端(可以获取文件的名称及文件大小)
    文件下载
    kafka:一个分布式消息系统
    Executor的线程代码
    验证码的生成
    二维码的简单实现
    rsync实现大致流程描述
    C++中模板生成时机
    gcc虚函数表生成时机
  • 原文地址:https://www.cnblogs.com/ACAC/p/1782298.html
Copyright © 2011-2022 走看看