zoukankan      html  css  js  c++  java
  • poj 2503 Trie树

      典型的Trie树, 算是复习一下字符串吧, 就是输入有点恶心,代码如下:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 500000+100;
    struct Trie{
        bool isword;
        int next[26];
        char words[15];
        Trie(){
            memset(next, -1, sizeof(next));
            isword = false;
        }
    }Root;
    Trie node[maxn];
    int n;
    
    void Insert(char *tar){
        Trie *head = &Root;
        char *s = tar;
        while(*tar!=' ') tar++;
        *tar='';
        tar++;
        while(*tar!=''){
            int id = *tar - 'a';
            if(head->next[id] == -1){
                head->next[id] = n++;
            }
            head = &node[head->next[id]];
            tar++;
        }
        head->isword = true;
        //printf("s = %s
    ", s);
        strcpy(head->words, s);
    }
    
    char *Search(char *tar)
    {
        Trie *head = &Root;
        while(*tar){
            int id = *tar - 'a';
            if(head->next[id] == -1) return NULL;
            head = &node[head->next[id]];
            tar++;
        }
        if(head->isword) return head->words;
        else return NULL;
    }
    
    char str[100];
    
    int main(){
        n = 0;
        while(gets(str)){
            bool kongge = false;
            int len = strlen(str);
            for(int i=0; i<len; i++) {
                if(str[i] == ' '){
                        kongge = true;
                        break;
                }
            }
            if(str[0]<'a'||str[0]>'z') continue;
            if(kongge) Insert(str);
            else {
                char *p = Search(str);
                if(p == NULL) printf("eh
    ");
                else printf("%s
    ", p);
            }
        }
        return 0;
    }
  • 相关阅读:
    LINQ Provider表达式树6
    asp.net Forms 验证No.3
    三种用户验证No.1 asp.net Forms
    LinQ表达式目录2
    将ASP.NET MVC 2.0 部署在IIS6和IIS7上
    LINQ Provider 表达式树 5
    asp.net Forms验证No.2
    LINQ表达式树4
    LINQ表达式树3
    绝对精华win8如何使用,玩转win8看完绝不后悔
  • 原文地址:https://www.cnblogs.com/xingxing1024/p/5285468.html
Copyright © 2011-2022 走看看