zoukankan      html  css  js  c++  java
  • pku2503 Babelfish

    额,跟hdu的1075很像,不过比那题简单多了,就是读入时有点麻烦,用到了一个函数

    具体看代码吧,这题没什么,不过我的内存开了太多了,不解……

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    typedef struct node
    {
    	node *next[26];
    	int v;
    	char str[15];
    }*tree,t;
    tree root;
    void insert(char *s,char *s1)
    {
    	tree p=root,newnode;
    	for(;*s1!='\0';s1++)
    	{
    		int d=*s1-'a';
    		if(p->next[d]!=NULL)
    			p=p->next[d];
    		else 
    		{
    			newnode=(tree)malloc(sizeof(t));
    			for(int i=0;i<26;i++)
    				newnode->next[i]=NULL;
    			newnode->v=-1;
    			newnode->str[0]=0;
    			p->next[d]=newnode;
    			p=newnode;
    		}
    	}
    	p->v=1;
    	strcpy(p->str,s);
    }
    void search(char *s)
    {
    	tree p=root;
    	for(;*s!='\0';s++)
    	{
    		int d=*s-'a';
    		if(p->next[d]!=NULL)
    			p=p->next[d];
    	}
    		if(p->v==1)
    				puts(p->str);
    		else printf("eh\n");
    			return ;
    	
    }
    int main()
    {
    	char s1[15],s2[15],s3[15];
    	char ch[25];
    	root=(tree)malloc(sizeof(t));
    	for(int i=0;i<26;i++)
    		root->next[i]=NULL;
    	root->v=-1;
    	root->str[0]=0;
    	while(gets(ch)!=NULL && ch[0]) {
    		sscanf(ch, "%s%s", s1, s2);//用到了这个函数,简化了许多
    		insert(s1, s2);
    	}
    	while(gets(s3))
    	{
    		if(strcmp(s3,"")==0)
    			break;
    		//puts(s3);
    		search(s3);
    	}
    	return 0;
    }
    
  • 相关阅读:
    十四行诗 Sonnet 15
    P3386 【模板】二分图匹配
    20171105模拟题
    需要注意的各种各种 持续更新
    P1315 观光公交 贪心
    【搬家辣】
    【洛谷P2387】魔法森林
    【洛谷P3369】普通平衡树(splay)
    【算法详解】splay的初步了解
    研究性学习代码
  • 原文地址:https://www.cnblogs.com/nanke/p/2046189.html
Copyright © 2011-2022 走看看