⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dc.cc

📁 一个增量文本聚类的算法。 参考文献: Wai-chiu Wong, Ada Wai-chee Fu, Incremental Document Clustering for Web Page Cl
💻 CC
字号:
#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <string.h>#include <iostream.h>#include "DC.h"DC::DC(int id,int *fv,int nf,char *lbl){    CID = id;    if(id >= 0){    	N = 1;    	numFeat = nf;    	W = new int[nf];    	for(int i=0;i<nf;i++){	    W[i] = fv[i];    	}    	docList = (dNode *)malloc(sizeof(dNode));    	docList->ID = id;    	strcpy(docList->label,lbl);     	docList->next = NULL;    }else{    	N = 0;    	numFeat = nf;    	W = new int[nf];    	for(int i=0;i<nf;i++){	    W[i] = 0;    	}    	docList = NULL;    }}DC::~DC(){}void DC::merge(DC *ent){    if(N > 0){    	N = N + ent->N;    	for(int i=0;i<numFeat;i++){	    W[i] = W[i] + ent->W[i];    	}    	dNode *dlc,*dlp;    	dlc = docList;    	dlp = docList;    	while(dlc != NULL){	    dlp = dlc;	    dlc = dlc->next;    	}	dNode *dla,*dlb;	dla = dlp;	dlb = ent->docList;	while(dlb != NULL){            dla->next = (dNode *)malloc(sizeof(dNode));	    dla->next->ID = dlb->ID;	    strcpy(dla->next->label,dlb->label);	    dla->next->next = NULL; 	    dla = dla->next;	    dlb = dlb->next;	}    }else{    	N = ent->N;    	for(int i=0;i<numFeat;i++){	    W[i] = ent->W[i];        }	dNode *dla,*dlb;	dlb = ent->docList;        docList = (dNode *)malloc(sizeof(dNode));	docList->ID = dlb->ID;	strcpy(docList->label,dlb->label);	docList->next = NULL; 	dla = docList;	dlb = dlb->next;	while(dlb != NULL){            dla->next = (dNode *)malloc(sizeof(dNode));	    dla->next->ID = dlb->ID;	    strcpy(dla->next->label,dlb->label);	    dla->next->next = NULL; 	    dla = dla->next;	    dlb = dlb->next;	}	//docList->ID = ent->docList;    }}void DC::showInfo(){    dNode *dl;    dl = docList;    while(dl != NULL){        printf("%d:%s ",dl->ID,dl->label);	dl = dl->next;    }    printf("\n");    for(int i=0;i<numFeat;i++){	printf("%d ",W[i]);    }    printf("\n");}int DC::showStat(char *lbl){    int n;        dNode *dl;    dl = docList;    n = 0;    while(dl != NULL){        if(strcmp(lbl,dl->label) == 0){	    n++;	}        dl = dl->next;    }        return n;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -