📄 indatt.h
字号:
#include "stdio.h"
#include "../shareclass.h"
//归纳属性约简类
class IndAttRed
{
public:
//variable
int max1;
char* pFileName; //待处理的文件名
int **pIntTable; //原始表,为int类型,中间对象,转化为info表,最后处理用到
int **pInfo; //原始表,已转化为int,处理中主要对象,约简对象
char *cStyle; //数据集基本类型
int iStage; //处理的进度标志
int iConNum; //条件属性数,总属性数为con_num+1
int iRecNum; //记录数,约简对象
int ipriRecNum; //记录数,原始结果
char **pAttName; //属性名称(按列分)
char **pDataType; //数据类型(按列分)
struct WCutRecord *struWCutRecord;//断点链表
PosD* pCoreCD; //C的D核
PosD* pmRedCD; //最小属性集合,也是所求结果
PosD* pnegCoreCD; //最小属性集合的补集
PosD* pPosCD; //Posc(D)
int iDemSetNum; //pCoreCD幂集的元素个数
int ** pDemSet; //pCoreCD的幂集
int max2;
public:
//methods discrible
bool SetIntegerTable(FILE *fp,int column, int row); //设置整形原始数据表
bool SetCutResult(FILE* fp); //将断点读入到WCutRecord链表中
bool SetDataType(FILE* fp,int count); //将数据类型读入datatype表中
bool SetAttName(FILE* fp,int count); //将属性名称读入attname表中
bool GetInfo(char* FileName); //从文件中得到数据,得到int型表
bool InitTable(); //初始化表
bool DelOverlap(); //删除信息表中的重复项
bool SaveFile(char* pFileName); //保存约简到文件
bool PosXD(int XNum,int* XSet,PosD* &PosXD); //安定义求Pos d(x),结果放在PosXD中,
bool CoreCD(); //求C的D核,结果放在*CoreDC中
void UindX(int XNum,int* XSet,int& iClassNumX,int** &pUindX);//求Unid(X);
bool mRedCD();
bool DemSet(int XNum,int DemNum,int& iDemSetNum,int XCoreNum,int*** pDemSet);//求negCoreCD的Xnum阶幂集,用递归算法
void negCoreCD(); //求CoreCD的补集
void PosCD(); //求PosC(D);
int CardUX(PosD* SetX); //求Card(U|X);
void FreeContent(); //释放空间
public:
//constrution and destrution
IndAttRed();
virtual ~IndAttRed();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -