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

📄 fptree.h

📁 FP-growth算法的改进C++程序,具有较好的扩展性和应用性,本程序改成用行读取
💻 H
字号:
// Fptree1.h: interface for the Fptree class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FPTREE1_H__7AA1C13B_5149_4A8A_937F_2B525F703825__INCLUDED_)
#define AFX_FPTREE1_H__7AA1C13B_5149_4A8A_937F_2B525F703825__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <stdio.h>
#include "fpt.h"
#include "LineBuf.h"

class Fptree  
{
public:
	int Execute(const char* param);
	Fptree();
	virtual ~Fptree();

private:
	float	m_userTime;
	float	m_sysTime;
	int		m_headerTableSize;

	SysTime		m_tm1;
	SysTime		m_tm2;
	SysTime		m_tm3;
	bool		m_sumflag;
	LineBuf		m_line;
public:
	void WriteSumFile(const char* FileName);
	int Execute(const char* param, const char* subparam);
	void Destroy();
	void DisplayTime();
	void BuildTree();
	void ParseItemSet();
	void FPgrowth(FPTreeNode T, FPTreeNode *headerTableLink, int headerSize, int *baseItems, int baseSize);
	LargeItemPtr *largeItemset;	/* largeItemset[k-1] = array of large k-itemsets */
	int *numLarge;			/* numLarge[k-1] = no. of large k-itemsets found. */
	int *support1;			/* Support of 1-itemsets */
	int *largeItem1;		/* 1-itemsets */
	
	FPTreeNode root;		/* Initial FP-tree */
	FPTreeNode *headerTableLink;	/* Corresponding header table */
	
	int expectedK;			/* User input upper limit of itemset size to be mined */
	int realK;			/* Actual upper limit of itemset size can be mined */
	float threshold;			/* User input support threshold */
	float thresholdDecimal;
	int numItem;			/* Number of items in the database */
	int numTrans;			/* Number of transactions in the database */
	char dataFile[100];		/* File name of the database */
	char outFile[100];		/* File name to store the result of mining */
	

protected:
	void destroyTree(FPTreeNode root);
	void genConditionalPatternTree(int *pattern, int baseSize, int patternSupport,
		 int *conLargeItem, int *conLargeItemSupport, FPTreeNode T,
		 int headerIndex, int headerSize, FPTreeNode *headerTableLink);	
	void buildConTree(FPTreeNode *conRoot, FPTreeNode **conHeader, int conHeaderSize, int *conLargeItem,
		 int *conLargeItemSupport, FPTreeNode T, FPTreeNode *headerTable, int baseIndex, int headerSize);
	void insert_tree(int *freqItemP, int *indexList, int count, int ptr, int length, 
		 FPTreeNode T, FPTreeNode *headerTableLink, int *path) ; 
	void combine(int *itemList, int *support, int start, int itemListSize, int *base, int baseSize);
	void addToLargeList(int *pattern, int patternSupport, int index);
	void q_sortA(int *indexList, int *freqItemP, int low, int high, int size);
	void input(const char *configFile);
	void q_sortD(int *support, int *itemset, int low,int high, int size);
	void swap(int *support, int *itemset, int x, int i);
	void displayResult();		
};

#endif // !defined(AFX_FPTREE1_H__7AA1C13B_5149_4A8A_937F_2B525F703825__INCLUDED_)

⌨️ 快捷键说明

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