C语言实现简单的倒排文件索引(二)

2013-07-22 17:56:54 · 作者: · 浏览: 274

 

  free(h->table);

  }

  void invertfile_traverse(if_t *h){

  word_t *w;

  wf_t* wf,*cur;

  for(int i=0;i<h->tablelen;i++){

  w=(word_t*)h->table[i];

  wf=(wf_t*)w->link;

  printf("word_id:%d;",w->id);

  while(wf!=NULL){

  cur=wf;

  wf=(wf_t*)wf->next;

  printf("d_id:%d,freq:%d;",cur->d_id,cur->refered);

  }

  printf("\n");

  }

  }

  测试文件main.cpp

  [cpp]

  #include"invert.h"

  int main(){

  if_t *f=invertfile_create(10);

  invertfile_insert(f,1,1);

  invertfile_insert(f,1,1);

  invertfile_insert(f,1,3);

  invertfile_insert(f,2,5);

  invertfile_traverse(f);

  invertfile_free(f);

  }

  实验结果:

  [cpp]

  word_id:0;

  word_id:1;d_id:3,freq:1;d_id:1,freq:2;

  word_id:2;d_id:5,freq:1;

  word_id:3;

  word_id:4;

  word_id:5;

  word_id:6;

  word_id:7;

  word_id:8;

  word_id:9;