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

📄 data.cpp

📁 关联规则挖掘算法FPtree的源代码
💻 CPP
字号:
/*----------------------------------File     : data.cppContents : data set management----------------------------------*/#include "data.h"#include "common.h"void Transaction::DoubleTrans(int item){	int* temp = new int[2*item];	maxlength = 2*item;	for(int i=0; i<length; i++)		temp[i] = t[i];	delete []t;	t = temp;}Data::Data(char *filename){#ifndef BINARY  in = fopen(filename,"rt");#else  in = fopen(filename, "rb");#endif}Data::~Data(){  if(in) fclose(in);}int Data::isOpen(){  if(in) return 1;  else return 0;}Transaction *Data::getNextTransaction(Transaction* Trans){	Trans->length = 0;  // read list of items#ifndef BINARY	  	char c;	int item, pos;	do {		item=0;		pos=0;		c = getc(in);		while((c >= '0') && (c <= '9')) {			item *=10;			item += int(c)-int('0');			c = getc(in);			pos++;		}		if(pos)		{			if(Trans->length >= Trans->maxlength)				Trans->DoubleTrans(Trans->length);			Trans->t[Trans->length] = item;			Trans->length++;		}	}while(c != '\n' && !feof(in));	// if end of file is reached, rewind to beginning for next pass	if(feof(in)){		rewind(in);		return 0;	}	// Note, also last transaction must end with newline, 	// else, it will be ignored#else	int i, nitem, *buffer=new int;	fread((char*)buffer, sizeof(int), 1, in);	if(feof(in))	{	    rewind(in);		return 0;	}	fread((char*)buffer, sizeof(int), 1, in);	fread((char*)buffer, sizeof(int), 1, in);	nitem=*buffer;	for(i=0; i<nitem; i++)	{		fread((char*)buffer, sizeof(int), 1, in);		if(Trans->length >= Trans->maxlength)			Trans->DoubleTrans(Trans->length);		Trans->t[Trans->length] = *buffer;		Trans->length++;	}#endif  	return Trans;}

⌨️ 快捷键说明

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