正文

Search Strategy 2005-09-25 12:17:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/5300.html

分享到:

#include <iostream.h>#include <fstream.h>ifstream f("a.txt");#define cin f#include <string.h>int fun(char *s,char *t){ int pos1,pos2,i; pos2=0; while(s[pos2]!='\0') {  if(s[pos2]=='.')  {   if(s[pos2+1]=='c' && s[pos2+2]=='o' && s[pos2+3]=='m' && (s[pos2+4]=='\0' ||    s[pos2+4]=='/' || s[pos2+4]=='.'))   {    pos1=pos2-1;    while(s[pos1]!='.')     pos1--;    goto loop;   }   else if (s[pos2+1]=='n' && s[pos2+2]=='e' && s[pos2+3]=='t' && (s[pos2+4]=='\0' ||    s[pos2+4]=='/' || s[pos2+4]=='.'))   {    pos1=pos2-1;    while(s[pos1]!='.')     pos1--;    goto loop;   }  }  pos2++; }loop : for(i=0;i<pos2-pos1;i++)  t[i]=s[i+pos1]; t[pos2-pos1]='\0'; return 0;}   struct Node{ char url[100]; char value[30]; int w; char keyword[100][30]; int key[100]; int r; char hypervalue[100][30]; int flag;}node[100];int main(){ int n,i,j,k,l,r; int N=0; int mm[100]; int pos[100]; char keyword[30]; cin>>n; char hyper[100]; for(i=0;i<n;i++) {  cin>>node[i].url;  fun(node[i].url,node[i].value);  cin>>node[i].w;  for(j=0;j<node[i].w;j++)  {   cin>>node[i].keyword[j];   node[j].key[i]=1;  }  cin>>node[i].r;  for(j=0;j<node[i].r;j++)  {   cin>>hyper;   fun(hyper,node[i].hypervalue[j]);  } } for(i=0;i<n;i++) {  for(j=0;j<n && j!=i;j++)  {   for(k=0;k<node[j].r;k++)   if(strcmp(node[j].hypervalue[k],node[i].value)==0)   {    for(l=0;l<node[i].w;l++)     node[i].key[l]++;   }  } } cin>>k; for(l=0;l<k;l++) {  cin>>keyword;  N=0;  cout<<"Search results of keyword "<<keyword<<":"<<endl;  for(i=0;i<n;i++)  {   mm[i]=0;   pos[i]=i;  }  for(i=0;i<n;i++)  {  for(j=0;j<node[i].w;j++)  {  if(strcmp(node[i].keyword[j],keyword)==0)  {   mm[N]=node[i].key[j];   pos[N]=i;   N++;   break;  }  }  }  //cout<<N<<endl;  for(i=0;i<N;i++)  for(j=0;j<N-i-1;j++)  {   if(mm[j]<mm[j+1])   {    int temp=mm[j];    mm[j]=mm[j+1];    mm[j+1]=temp;    temp=pos[j];    pos[j]=pos[j+1];    pos[j+1]=temp;   }  }  for(i=0;i<N;i++)  {   for(j=4;j<strlen(node[pos[i]].url);j++)    cout<<node[pos[i]].url[j];   cout<<endl;  }   }}

阅读(4259) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册