Home > Backend Development > PHP Tutorial > hdu 1251(字典树) 统计偏题 http://acm.hdu.edu.cn/showproblem.php?pid=1251

hdu 1251(字典树) 统计偏题 http://acm.hdu.edu.cn/showproblem.php?pid=1251

WBOY
Release: 2016-06-13 13:25:52
Original
908 people have browsed it

hdu 1251(字典树) 统计难题 http://acm.hdu.edu.cn/showproblem.php?pid=1251


解题思路:直接套用字典树的模板,注意以空行结束的判断是 strcmp(str,"")==0

代码:

#include
#include
#include
using namespace std;
//创建一个字典树结构体
struct node{
    int num;
    struct node *br[26];
};
node *root;
//插入字母建立树
void Tree_Insert(char str[]){
    node *t , *s = root;
    int i , j;
    int len = strlen(str) - 1;
    for(i = 0 ;i         int id = str[i] - 'a';
        if(s -> br[id] == NULL){
            t = new node;
            for(j = 0 ; j                 t -> br[j] = NULL;
            }
            t -> num = 0;
            s -> br[id] = t;
        }
        s = s -> br[id];
        s ->num++;
    }
}
//查找
int Tree_search(char str[]){
    node *s = root;
    int count;
    int len = strlen(str) - 1;
    for(int i = 0 ; i         int id = str[i] - 'a';
        if(s -> br[id] == NULL){
            count = 0;
            return count;
        }
        else{
            s = s -> br[id];
            count = s -> num;
        }
    }
    return count;
}
int main(){
    int i , j;
    root = new node;
    for(i = 0 ; i         root -> br[i] = NULL;
        root -> num = 0;
    }
    char str[15];
    while(gets(str),strcmp(str,"")){ //注意这里的判断条件,逗号表达式 
        Tree_Insert(str);
    }
    while(gets(str)){
        cout     }
    return 0;
}


   

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template