zoukankan      html  css  js  c++  java
  • Trie树模板(插入和查询)

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 typedef struct TrieNode{
     5     bool flag;
     6     TrieNode *next[26];
     7     TrieNode(){
     8         flag = false;
     9         memset(next, 0, sizeof(next));
    10     }
    11 }TrieNode, *Trie;
    12 
    13 TrieNode *InitTrieNode(){
    14     TrieNode *p = new TrieNode;
    15     return p;
    16 }
    17 
    18 void InsertNode(Trie root, char *word){
    19     Trie p = root;
    20     char *ch = word;
    21     int id;
    22     while(*ch){
    23         id = *ch - 'a';
    24         if (p->next[id] == NULL)
    25             p->next[id] = InitTrieNode();
    26         p = p->next[id];
    27         ++ch;
    28     }
    29     p->flag = true;
    30 }
    31 
    32 bool TrieSearch(Trie root, char *word){
    33     Trie p = root;
    34     char *ch = word;
    35     int id;
    36     bool ans = false;
    37     while(*ch){
    38         id = *ch - 'a';
    39         if (p->next[id] == NULL)
    40             return false;
    41         p = p->next[id];
    42         ++ch;
    43     }
    44     return p->flag;
    45 }
    46 
    47 int main()
    48 {
    49     Trie root = InitTrieNode();
    50     cout<<"请输入需要的单词数:"<<endl;
    51     int n;
    52     char str[25];
    53     cin>>n;
    54     while(n--){
    55         cout<<"请输入单词:"<<endl;
    56         cin>>str;
    57         InsertNode(root, str);
    58     }
    59     cout<<endl<<"请输入需要的查询数:"<<endl;
    60     cin>>n;
    61     while(n--){
    62         cout<<"请输入单词:"<<endl;
    63         cin>>str;
    64         if (TrieSearch(root, str)) cout<<"该单词存在"<<endl<<endl;
    65         else cout<<"该单词不存在"<<endl<<endl;
    66     }
    67 
    68     return 0;
    69 }
  • 相关阅读:
    浅谈数组
    前端冷知识
    number框
    jQuery封装轮播图插件
    瀑布流的简单制作
    Java script-数组与字符串方法
    Java script-1
    Web前端基础学习-2
    Web前端基础学习-3
    Web前端基础学习-1
  • 原文地址:https://www.cnblogs.com/robin1998/p/6359124.html
Copyright © 2011-2022 走看看