亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? closedtree.cpp

?? 數(shù)據(jù)挖掘中的序列模式挖掘算法clospan的C++實(shí)現(xiàn)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include <assert.h>#include "../Global.h"#include "../ProjDB.h"#if defined(_ANOTHER_CLOSED_APPROACH)#include "ClosedTree.h"ItemSet supSet;ItemSet subSet;int zzz=0;bool TreeNodeLess( TreeNode * a, TreeNode * b ){	if( (*a).ItemIsIntra == (*b).ItemIsIntra )		return (*a).Item < (*b).Item; 	else if( (*a).ItemIsIntra && !(*b).ItemIsIntra )		return true;	else		return false;}int TreeNodeCompare( TreeNode ** a, TreeNode ** b ){	if( (*(*a)).ItemIsIntra == (*(*b)).ItemIsIntra )		if( (*(*a)).Item == (*(*b)).Item )			return 0;		else if( (*(*a)).Item < (*(*b)).Item )			return -1;		else			return 1;	else if( (*(*a)).ItemIsIntra && !(*(*b)).ItemIsIntra )		return -1;	else		return 1;}inline TreeNode * GetLastItemSet(TreeNode * treeNode, ItemSet *itemSet){	int *itemArray=itemSet->ItemArray;	int i=0;	itemSet->reset();	do {		itemArray[i++]=treeNode->Item;		if (!treeNode->ItemIsIntra)			break;		else			treeNode=treeNode->Parent;	} while (treeNode->Items > 0);		itemSet->Count=i;	return (treeNode->Parent);}inline int isContained_DBSizeEqual(struct PROJ_DB *pDB, TreeNode *currentLevel, TreeNode *candidate) {		int		myItem = pDB->Item;	bool	myItemIsIntra = pDB->ItemIsIntra;	int		dir;	bool	isContained;	TreeNode *supNode;	TreeNode *subNode;	if ((myItem != candidate->Item) || (candidate->Items == (currentLevel->Items+1))) 		return 0;	if ( candidate->Items > (currentLevel->Items + 1))		dir=1;	else		dir=-1;	if (candidate->ItemIsIntra) {		if (myItemIsIntra) {			candidate=candidate->Parent;		}		else {			//in this case, supNode must be candidate, subNode must be currentLevel			while (candidate->ItemIsIntra && candidate->Items >0)				candidate = candidate ->Parent;			candidate=candidate->Parent;			if ((candidate->Items < currentLevel->Items) || (candidate->ItemsetNumber < currentLevel->ItemsetNumber))				return 0;					}	}	else {		if (myItemIsIntra) {			//in this case, supNode must be currentLevel, subNode must be candidate			while (currentLevel->ItemIsIntra && currentLevel->Items >0)				currentLevel = currentLevel ->Parent;			currentLevel=currentLevel->Parent;			if ((candidate->Items > currentLevel->Items) || (candidate->ItemsetNumber > currentLevel->ItemsetNumber))				return 0;					}		else {			candidate=candidate->Parent;		}	}		if (currentLevel->Items == 0) {		return 1;	}	if (candidate->Items == 0) {		return -1;	}	if ( dir == 1) {		supNode=candidate;		subNode=currentLevel;		}	else {		supNode=currentLevel;		subNode=candidate;	}	isContained=false;	supNode=GetLastItemSet(supNode, &supSet);	subNode=GetLastItemSet(subNode, &subSet);	while (1) {		if (subSet.IsSubsetOf(&supSet)) {			if (subNode->Items == 0) {				isContained=true;				break;			}			if ((supNode->Items >= subNode->Items) && (supNode->ItemsetNumber >= subNode->ItemsetNumber)) {				supNode=GetLastItemSet(supNode, &supSet);				subNode=GetLastItemSet(subNode, &subSet);			}			else				break;		}		else {			if (supNode->Items == 0) // unnecessary to check any more.				break;			if ((supNode->Items >= subNode->Items) && (supNode->ItemsetNumber >= subNode->ItemsetNumber)) {				supNode=GetLastItemSet(supNode, &supSet);			}			else				break;		}	}	if (isContained)		return dir;	else		return 0;}void updateNodeInfo(TreeNode *treeNode, int extraItems, int extraItemsetNumber){	NodeVector::iterator it, endit;	treeNode->Items += extraItems;	treeNode->ItemsetNumber += extraItemsetNumber;	for (it=treeNode->Children->begin(), endit=treeNode->Children->end(); it != endit; it++) {		if ((*it)->Parent == treeNode)				updateNodeInfo((*it), extraItems, extraItemsetNumber);	}}void updateOldNodeInfo(TreeNode* parent, TreeNode *pNode, TreeNode *qNode){	TreeNode **Res;	Res = (TreeNode **) bsearch( &pNode, &(*(parent->Children))[0], (*(parent->Children)).size(), sizeof( TreeNode *), (int (*)(const void*, const void*))TreeNodeCompare );	*Res=qNode;}void checkNodeInfo(TreeNode *treeNode){		int items;	int itemset_number;	TreeNode *parent = treeNode->Parent;	NodeVector::iterator it, endit;	if( treeNode->ItemIsIntra ) {		itemset_number = parent->ItemsetNumber;		items = parent->Items + 1;	}	else {		itemset_number = parent->ItemsetNumber + 1;		items = parent->Items + 1;	}	if ((items != treeNode->Items) || (itemset_number != treeNode->ItemsetNumber))		printf("Node Info: Items or ItemsetNumber Error");	for (it=treeNode->Children->begin(), endit=treeNode->Children->end(); it != endit; it++) {		if ((*it)->Parent == treeNode)			checkNodeInfo((*it));	}		}//int qqq;int addSequence(struct PROJ_DB *pDB, TreeNode **currentLevelp, ReverseHashTable *reverseTable){	TreeNode   *pNode, *qNode;	TreeNode *currentLevel=*currentLevelp;	ReverseMap pMap;	ReverseHashTable::iterator it, endit;	int ret, myNumOfItems;		/*printf("SSN: %d Item: %d\n", ++qqq, pDB->Item);	if (qqq == 20496) {		printf("hello\n");	}*/		//myNumOfItems=pDB->NumOfItems + pDB->m_nMaxSup - pDB->m_nSup;	myNumOfItems=pDB->NumOfItems + pDB->m_nMaxSup;	//myNumOfItems=pDB->NumOfItems;	/*if (myNumOfItems == 3378012)			printf("GUGU\n");	*/	pMap=(*reverseTable).equal_range(myNumOfItems);	for (it=pMap.first, endit=pMap.second; it != endit; it++) {		pNode=(*it).second;		if (pNode->Support != pDB->m_nMaxSup)			continue;		ret=isContained_DBSizeEqual(pDB, currentLevel, pNode);		switch (ret) {			case 0:				continue;			case 1:  //Backward SubPattern				//(*(currentLevel->Children)).push_back(pNode);				//(*(currentLevel->IntraChildren))[pDB->Item]=pNode;				//qNode is a mirror of pNode, but has slight different				//the major goal is to let closed_maxPruning much easier				qNode= new TreeNode();				qNode= currentLevel->AddChildWithoutChecking( pDB->Item, pDB->ItemIsIntra, pDB->m_nMaxSup);				qNode->SetProjDBSize(myNumOfItems);				qNode->Children=pNode->Children;				return EQUAL_PROJECT_DB_SIZE;			case -1: //Backward SuperPattern				qNode= new TreeNode(pNode);				updateOldNodeInfo(pNode->Parent, pNode, qNode);				if (pDB->ItemIsIntra) {					updateNodeInfo(pNode, 								   currentLevel->Items - pNode->Parent->Items,								   currentLevel->ItemsetNumber - pNode->Parent->ItemsetNumber);					//checkNodeInfo(currentLevel);					pNode->ItemIsIntra=true;					pNode->Parent=currentLevel;					(*(currentLevel->Children)).push_back(pNode);					inplace_merge((*(currentLevel->Children)).begin(), (*(currentLevel->Children)).end()-1, 								  (*(currentLevel->Children)).end(), TreeNodeLess );				}				else {					updateNodeInfo(pNode, 								   currentLevel->Items - pNode->Parent->Items,								   currentLevel->ItemsetNumber - pNode->Parent->ItemsetNumber);					//checkNodeInfo(currentLevel);					//pNode->Parent->Children->erase(pNode);					pNode->ItemIsIntra=false;					pNode->Parent=currentLevel;					(*(currentLevel->Children)).push_back(pNode);					inplace_merge((*(currentLevel->Children)).begin(), (*(currentLevel->Children)).end()-1, 								  (*(currentLevel->Children)).end(), TreeNodeLess );				}								//reverseTable->erase(it);				//reverseTable->insert(ReverseHashTable::value_type(myNumOfItems, qNode));									return EQUAL_PROJECT_DB_SIZE;			default:				break;		}	}		zzz++;	pNode= new TreeNode();	pNode= currentLevel->AddChildWithoutChecking( pDB->Item, pDB->ItemIsIntra, pDB->m_nMaxSup);	pNode->SetProjDBSize(myNumOfItems);	(*currentLevelp)=pNode;	reverseTable->insert(ReverseHashTable::value_type(myNumOfItems, pNode));	return INEQUAL_PROJECT_DB_SIZE;}void closed_maxChecking(TreeNode *pNode, TreeNode *pNode_parent, TreeNode *qNode){	NodeVector::iterator it, endit;	if (pNode == NULL)		return;	if (pNode->Parent != pNode_parent)		return;#if defined (_ANOTHER_MAX_APPROACH)		pNode->max=false;#else	if (pNode->Support == qNode->Support)		pNode->closed = false;#endif	for (it=qNode->Children->begin(), endit=qNode->Children->end(); it != endit; it++) 		closed_maxChecking (pNode->FindChild((*it)->Item, (*it)->ItemIsIntra), pNode, (*it));}void closed_maxPruning(TreeNode *treeNode, TreeNode *parent){	NodeVector::iterator it, endit, ti;	bool myItemIsIntra=treeNode->ItemIsIntra;	TreeNode *pNode;#if defined (_ANOTHER_MAX_APPROACH)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费日本视频一区| 欧美人成免费网站| 成人免费看片app下载| 国产一区福利在线| 国产精品原创巨作av| 国产精品亚洲午夜一区二区三区| 另类小说色综合网站| 麻豆精品久久精品色综合| 免费在线观看一区二区三区| 免费高清不卡av| 青青草精品视频| 久久99久久久久久久久久久| 久久国产剧场电影| 国产精品一卡二| 成人午夜av在线| 91丨九色丨国产丨porny| 91成人免费在线视频| 欧美日韩激情一区二区三区| 91精品国模一区二区三区| 91精品国产综合久久国产大片| 欧美一区二区三区免费观看视频 | 久久久久久电影| 精品蜜桃在线看| 国产亚洲自拍一区| 亚洲欧洲美洲综合色网| 亚洲欧美视频在线观看| 亚洲女女做受ⅹxx高潮| 亚洲国产日韩a在线播放性色| 免费人成精品欧美精品| 国产又黄又大久久| 粉嫩欧美一区二区三区高清影视| 99热国产精品| 欧美精品久久久久久久多人混战| 91精品国产综合久久久久久| 久久久久久久久久久99999| 中文字幕不卡在线观看| 亚洲一区二区精品视频| 蜜臀久久99精品久久久久宅男| 国产露脸91国语对白| 99re在线精品| 91麻豆精品91久久久久久清纯| 欧美不卡一区二区三区四区| 欧美激情艳妇裸体舞| 日韩精品亚洲专区| 久久精品国产精品青草| 99久久久久免费精品国产| 精品视频色一区| 精品国产凹凸成av人导航| 国产精品视频免费| 午夜精品一区二区三区三上悠亚| 国产一区二区日韩精品| 91极品视觉盛宴| 精品成a人在线观看| 亚洲欧美另类久久久精品 | 91福利视频网站| 精品国产露脸精彩对白| 亚洲综合免费观看高清完整版在线 | 国产福利一区二区三区视频| 91香蕉视频污在线| 日韩视频一区二区三区在线播放 | 国产精品素人视频| 日韩精品国产欧美| 91丝袜美女网| 久久久久久久久99精品| 石原莉奈一区二区三区在线观看| 丁香婷婷综合色啪| 欧美一级久久久| 亚洲乱码日产精品bd| 国内国产精品久久| 欧美肥胖老妇做爰| 夜夜夜精品看看| 国产成人av电影在线观看| 欧美精品tushy高清| 一区二区三区欧美亚洲| 国产麻豆欧美日韩一区| 日韩一区二区三区电影| 亚洲一区二区三区视频在线 | 久久精品在线免费观看| 亚洲成人免费看| 91在线精品一区二区三区| 精品国产百合女同互慰| 日韩成人精品在线观看| 日本高清成人免费播放| 国产精品拍天天在线| 国产一区二区三区在线观看精品| 欧美绝品在线观看成人午夜影视| 亚洲欧美日韩精品久久久久| 国产91精品一区二区麻豆网站| 精品动漫一区二区三区在线观看| 午夜国产精品一区| 在线精品视频一区二区| 亚洲三级电影全部在线观看高清| 丁香婷婷深情五月亚洲| 久久久久久久一区| 国产剧情一区二区| 日韩一区二区免费在线电影 | 欧美久久久一区| 一区二区三区精品视频| 在线一区二区三区四区| 亚洲综合在线电影| 91久久国产最好的精华液| 亚洲精品国产高清久久伦理二区| 一本色道亚洲精品aⅴ| 亚洲丝袜自拍清纯另类| 91色在线porny| 亚洲自拍偷拍麻豆| 欧美无砖砖区免费| 亚洲123区在线观看| 91.麻豆视频| 蜜桃在线一区二区三区| www国产精品av| 国产精品88av| 国产精品毛片高清在线完整版| 成人激情免费电影网址| 亚洲男女毛片无遮挡| 欧日韩精品视频| 婷婷久久综合九色综合伊人色| 欧美丰满少妇xxxxx高潮对白 | 欧美一区二区三区免费观看视频| 蜜臀av国产精品久久久久| 精品久久久久久久人人人人传媒| 国产一区二区三区免费在线观看| 久久久精品国产免费观看同学| 波多野结衣视频一区| 一区二区在线看| 欧美精品一二三| 国产精品影视天天线| 亚洲天堂精品在线观看| 欧美猛男gaygay网站| 久久99国产精品久久99| 国产欧美日韩在线看| 91美女片黄在线观看| 日本不卡的三区四区五区| 久久精品无码一区二区三区| 99视频超级精品| 亚洲成人手机在线| 26uuu精品一区二区| 成人精品电影在线观看| 一区二区三区免费| 日韩欧美卡一卡二| 成人h动漫精品| 亚洲电影一区二区三区| 精品久久久久久久久久久久包黑料| 成人精品视频一区二区三区| 亚洲国产另类av| 久久久精品国产99久久精品芒果| 99久久精品国产精品久久| 日韩激情中文字幕| 国产喷白浆一区二区三区| 欧美系列日韩一区| 国产一区二区福利| 一片黄亚洲嫩模| 久久久久99精品国产片| 日本福利一区二区| 久久99精品久久久久久动态图 | 精品成人一区二区| 色婷婷亚洲精品| 黄色日韩网站视频| 一区二区三区精品| 日本一区二区三区高清不卡| 欧美日韩另类一区| 成人一级视频在线观看| 婷婷丁香激情综合| 国产精品免费久久| 欧美一区二区啪啪| 91麻豆精品在线观看| 国产中文字幕精品| 婷婷久久综合九色综合绿巨人 | 久草精品在线观看| 亚洲成人黄色影院| 国产精品高清亚洲| 精品久久久久久久人人人人传媒 | 国产精一区二区三区| 丝袜美腿一区二区三区| 日韩理论在线观看| 久久影院午夜论| 欧美高清www午色夜在线视频| 色综合久久天天| 丁香激情综合五月| 久久99精品国产.久久久久久| 五月婷婷激情综合| 一区二区三区四区五区视频在线观看| 久久丝袜美腿综合| 日韩一级视频免费观看在线| 欧美在线啊v一区| av在线不卡电影| 国产一区二区福利| 激情六月婷婷综合| 蜜桃视频在线观看一区| 五月天久久比比资源色| 日韩毛片高清在线播放| 国产精品久久久久aaaa| 国产亚洲成aⅴ人片在线观看| 91精品国产入口在线| 欧美剧情片在线观看| 欧美日韩综合在线| 欧美亚洲综合网| 日本韩国一区二区三区视频| 99精品久久只有精品| voyeur盗摄精品|