poj2503哈希表实现字符串查找 题目描述(Description) 分析(Analysis) 代码(Code)


Babelfish

题目描述(Description)

给定一些字符串以及它在一种外星语言中的对应解释,现在有若干外星语言中的串,要求把它们翻译成英语。

分析(Analysis)

直接用字典树存外星语,维护一个长度为11的字符数组,用来存对应的英语。

代码(Code)

#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
const int M=100003;
struct Node{
    int hash;
    struct Node *next;
}*link[M]={NULL};

char word[100000][11],dialect[100000][11];


int (char *key)
{
    unsigned long h=0,g;
    while(*key){
        h=(h<<4)+*key++;
        g=h&0x0000000L;
        if(g)
            h^=g>>24;
        h&=~g;
    }
    return h%M;
} 

int main()
{
    int i,j,e,n=0;
    struct Node *p;
    char str[100];
    gets(str);
    while(strcmp(str,"")!=0)
    {
        for(i=0;str[i]!=' ';i++){
            word[n][i]=str[i];
        }
        word[n][i++]='