栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现简单的倒排文件索引的代码

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现简单的倒排文件索引的代码

将开发过程中较好的代码段做个珍藏,如下代码是关于C语言实现简单的倒排文件索引的代码,希望对各位有所用。

#ifndef INVERT_FILE_H
#define INVERT_FILE_H
#include
#include

typedef struct invertfile {
unsigned int tablelen;
unsigned int nodecount;

}if_t;
typedef struct word{
unsigned int id;
}word_t;
typedef struct word_frequency{
unsigned int d_id;
}wf_t;

#endif

invert.cpp

#include"invert.h"

if (NULL == h) return NULL;       
  
h->tablelen=length;  
h->nodecount=0;  
for(int i=0;itable[i]=malloc(sizeof(word_t));  
    w->id=i;  
    w->refered=0;  
    w->link=NULL;  
}  
return h;  

}
if(w->refered>0){
while(wf){
if(wf->d_id==d_id)return wf;
}
}
return NULL;
}
if((wf=invertfile_search(h,w_id,d_id))!=NULL){
wf->refered++;
}
else{
wf->next=w->link;
w->link=wf;
w->refered++;
wf->refered++;
wf->d_id=d_id;
h->nodecount++;
}
}
for(int i=0;itablelen;i++){
while(wf!=NULL){
cur=wf;
free(cur);
}
free(w);
}
free(h->table);
}
for(int i=0;itablelen;i++){
printf(“word_id:%d;”,w->id);
while(wf!=NULL){
cur=wf;
printf(“d_id:%d,freq:%d;”,cur->d_id,cur->refered);
}
printf(“n”);
}
}

测试文件main.cpp

#include"invert.h"
int main(){
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);
}

实验结果:

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;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698866.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号