📄 dc.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 + -