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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? occlonglist.cpp

?? 包含最大頻繁序列的挖掘; 包含層次聚類算法
?? CPP
字號:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
Class: OccLongList

Description: Used to store the occurrence list of a rooted 
ordered pattern tree, for CMOrderedTreeMiner algorithms
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#pragma   warning   (disable:   4083   4786)
#include "OccLongList.h"

typedef map<int, vector< vector<short> > >  MAP_frequency;
void OccLongList::insert(int newdocTid, int newpathTid, int newLocation)
{
	pathocc occ;
	occ.dococ=newdocTid;
	occ.pathoc = newpathTid;
	occ.pos=newLocation;
    occurrenceLong.push_back(occ);
    if ( lastTid != newdocTid ) { //if comes from a new transaction
		lastTid = newdocTid;
		mySupport++;
	}
}

bool OccLongList::combineList(const OccLongList& mother, const OccList& newNodes)
{
	occurrenceLong.clear();
	int nodeId ;
	int motherId ;

	nodeId = 0;
	motherId = 0;
	mySupport = 0;
	int tempTid = -1;
	while ( nodeId < newNodes.occurrence.size() ) {
		//first, find the correct mother
		while ( motherId != newNodes.occurrence[nodeId].first ) motherId++;
		occurrenceLong.push_back(mother.occurrenceLong[motherId]);
		occurrenceLong.back().pos = newNodes.occurrence[nodeId].second;
		if ( tempTid != mother.occurrenceLong[motherId].dococ ) {
			tempTid = mother.occurrenceLong[motherId].dococ;
			mySupport++;
		}
		while ( (nodeId+1) < newNodes.occurrence.size() 
			&& (newNodes.occurrence[nodeId].first == newNodes.occurrence[nodeId+1].first) ) {
				nodeId++;
				occurrenceLong.push_back(mother.occurrenceLong[motherId]);
			    occurrenceLong.back().pos = newNodes.occurrence[nodeId].second;
			}
			nodeId++;
	}
	return true;
}

int includepath(vector<short> a, vector<short> b)
{
	int i,j;
	if(a.size()>b.size())
	{
		i=j=0;
		while (i<a.size() && j<b.size())
		{
			if(a[i]!=b[j]) i++;
			else{
				j++; i++;
			}
		}
		if(j==b.size()) return 1;
	}
	if(b.size()>a.size())
	{
        i=j=0;
		while (i<b.size() && j<a.size())
		{
			if(b[i]!=a[j]) i++;
			else{
				j++; i++;
			}
		}
		if(j==a.size()) return -1;
	}
	return 0;
}
void OccLongList::explore(const vector<bool>& isFrequent, 
						  const vector<TextTree>& database,
						  const int& support,
						  map<int, vector< vector<short> > >& frequency,
						  vector< vector<short> >& maximal,
						  vector< vector<pathocc > >& maximalocclonglist)
{
	//for debug
	//cout << "support of current path is: " << mySupport << endl;
	//for(int m=0;m<currentPath.size();m++)
	//	cout<<currentPath[m]<<" ";
	//cout<<endl;
	
	int tempV = currentPath.size();
	MAP_frequency::iterator posfrequency;
	posfrequency = frequency.find(tempV);
	if(posfrequency != frequency.end())
		frequency[tempV].push_back(currentPath);
	else {
		vector< vector<short> > aa;
		frequency.insert(MAP_frequency::value_type(tempV,aa));
		frequency[tempV].push_back(currentPath);
	}

	//search the maximal
    vector< vector<short> >::iterator posmaximal;
	vector< vector<pathocc> >::iterator posmaximalocc;
	bool insertflag=true;
	if( maximal.empty()) {
		maximal.push_back(currentPath);
		maximalocclonglist.push_back(occurrenceLong);
	}
	else{
		insertflag=true;
		//掃描整個maximal數組
		posmaximalocc = maximalocclonglist.begin();
		for(posmaximal = maximal.begin(); posmaximal!=maximal.end();++posmaximal,++posmaximalocc)
		{
			/*cout<<"currentPath: ";
			for(int m=0;m<currentPath.size();m++)
					cout<<currentPath[m]<<" ";
	         cout<<endl;
			 cout<<"pospath: ";
			 for( m=0; m< posmaximal->size();m++)
				 cout<< (*posmaximal)[m]<<" ";
	         cout<<endl;*/

			if( includepath(*posmaximal, currentPath) == 1){
				//posmaximal包含currentpath
				insertflag=false;
			}
			else if( includepath(*posmaximal, currentPath) == -1){
				//currentpath包含posmaximal
				maximalocclonglist.erase(posmaximalocc);
				maximal.erase(posmaximal);
				posmaximal--;
				posmaximalocc--;
			}
		}
        if(insertflag) 
		{
			maximal.push_back(currentPath);
			maximalocclonglist.push_back(occurrenceLong);
		}
	}	

	//step 3, explore all the expansions
	//step 3.1, explore the children of the rightmost node 
	map<short,OccList> potentialChildren;
	map<short,OccList>::iterator pos;
	for (int  n = 0; n < occurrenceLong.size(); n++ ) {
		int myTid = occurrenceLong[n].dococ;
		int myPathid = occurrenceLong[n].pathoc;
		int myLocation = occurrenceLong[n].pos;
         
		int k = myLocation+1;
		//here, redundancy must be recorded also.
		while ( k <database[myTid].path[myPathid].second.size() ) {
			if ( isFrequent[database[myTid].path[myPathid].second[k] - MIN_VERTEX] == true) {
				potentialChildren[database[myTid].path[myPathid].second[k] - MIN_VERTEX].insert(myTid,k,n);
			}
			k++;
		}
	}
    //for test
	/*for( pos= potentialChildren.begin() ; pos !=potentialChildren.end();++pos)
	{
		cout<<pos->first+MIN_VERTEX<<" "<<pos->second.mySupport<<endl;
		for(m=0;m<pos->second.occurrence.size();m++)
			cout<<pos->second.occurrence[m].first<<" "<<pos->second.occurrence[m].second<<endl;
		cout<<endl;
	}*/
	for ( pos = potentialChildren.begin(); pos != potentialChildren.end(); ++pos ) {
		if ( pos->second.mySupport >= support ) { //a frequent extension!
			currentPath.push_back(pos->first + MIN_VERTEX);
			OccLongList newLongList;
		    newLongList.combineList(*this,pos->second); 
			newLongList.explore(isFrequent,database,support,frequency,maximal,maximalocclonglist);
			currentPath.erase(currentPath.begin()+currentPath.size()-1);
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久成人免费日本黄色| 日本女人一区二区三区| 久久久久久一级片| 日韩欧美综合在线| 精品毛片乱码1区2区3区| 日韩一级免费一区| 久久久亚洲综合| 久久久99久久精品欧美| 久久久午夜精品理论片中文字幕| 欧美一个色资源| 精品福利一二区| 国产视频一区在线观看| 国产精品超碰97尤物18| 国产精品传媒在线| 亚洲综合视频在线| 日韩电影免费在线观看网站| 久久精品国产一区二区| 国产91在线观看| 91麻豆国产自产在线观看| 欧美主播一区二区三区美女| 在线观看视频一区二区欧美日韩| 欧美性xxxxxxxx| 精品国产亚洲在线| 中文字幕在线观看不卡视频| 一区二区三区四区国产精品| 日韩二区在线观看| 春色校园综合激情亚洲| 99在线精品视频| 欧美乱妇23p| 国产日产欧美一区二区三区| 一区二区在线观看视频在线观看| 亚洲成人在线观看视频| 国产在线国偷精品产拍免费yy| 成人av影视在线观看| 欧美日韩视频在线第一区| 欧美精品一区二区三区在线播放| 国产精品日日摸夜夜摸av| 天涯成人国产亚洲精品一区av| 国产电影一区在线| 日本道免费精品一区二区三区| 日韩女优视频免费观看| 亚洲人成精品久久久久| 久久99热国产| 91成人在线观看喷潮| 亚洲免费观看在线视频| 韩国欧美国产1区| 欧美三级视频在线| 国产精品三级电影| 韩国女主播成人在线| 欧美日韩国产一二三| 综合久久久久综合| 国产成人99久久亚洲综合精品| 91麻豆精品国产| 亚洲影院在线观看| 99久久精品免费看国产| 国产网红主播福利一区二区| 日韩高清不卡一区二区三区| 在线免费观看成人短视频| 国产色产综合产在线视频| 青青草国产成人99久久| 欧美日韩一区二区三区不卡| 亚洲欧洲av另类| 成人免费看的视频| 2014亚洲片线观看视频免费| 日本不卡不码高清免费观看| 欧美色偷偷大香| 亚洲一区二区三区在线播放| 91亚洲国产成人精品一区二区三 | 成人做爰69片免费看网站| 91精品在线观看入口| 天天操天天干天天综合网| 91黄视频在线观看| 一区二区三区不卡视频在线观看| av一区二区三区| 亚洲人成影院在线观看| 99久久精品国产精品久久| 中文字幕一区不卡| 成人av电影在线网| 国产精品国产三级国产aⅴ无密码| 成人妖精视频yjsp地址| 国产精品入口麻豆原神| 93久久精品日日躁夜夜躁欧美| 国产精品不卡在线| 色噜噜狠狠色综合中国| 亚洲综合色丁香婷婷六月图片| 在线观看亚洲精品视频| 亚洲成在线观看| 日韩精品一区二区三区swag| 国产一区 二区| 国产亚洲精品超碰| 91色视频在线| 亚洲成国产人片在线观看| 日韩一二三四区| 国产精品一区二区果冻传媒| 中文字幕综合网| 欧美日韩精品一区二区天天拍小说| 性感美女久久精品| 久久这里都是精品| 91在线视频播放地址| 日本三级亚洲精品| 国产欧美日韩麻豆91| 色一情一乱一乱一91av| 奇米综合一区二区三区精品视频| 亚洲精品一区二区三区99| eeuss鲁一区二区三区| 午夜久久福利影院| 国产欧美日韩在线看| 精品视频一区三区九区| 国产资源在线一区| 亚洲男人的天堂在线观看| 777亚洲妇女| 成人免费高清在线| 日韩高清不卡在线| 亚洲色图在线看| 精品日韩一区二区| 欧美性感一区二区三区| 国产乱一区二区| 亚洲成人免费视| 最新国产精品久久精品| 日韩欧美亚洲国产另类| 色婷婷香蕉在线一区二区| 久草这里只有精品视频| 亚洲国产毛片aaaaa无费看| 国产欧美精品国产国产专区 | 欧美一级欧美一级在线播放| 成人涩涩免费视频| 免费观看在线色综合| 亚洲制服丝袜av| 国产精品丝袜在线| 精品久久久久一区二区国产| 色国产综合视频| 成人免费看视频| 国产一区二区三区久久悠悠色av| 亚洲电影你懂得| 一区二区三区鲁丝不卡| 中文字幕第一区第二区| 久久综合精品国产一区二区三区| 欧美熟乱第一页| 一本色道久久综合亚洲精品按摩| 国产一区二区三区香蕉| 麻豆精品一区二区| 日韩国产在线观看| 亚洲成a人v欧美综合天堂下载| 亚洲欧美日韩精品久久久久| 中文字幕精品在线不卡| 精品国产乱码91久久久久久网站| 欧美精品丝袜久久久中文字幕| 欧美专区日韩专区| 欧美综合在线视频| 91国内精品野花午夜精品| 91麻豆国产福利在线观看| 91在线丨porny丨国产| 99久久国产综合精品女不卡| 成人美女视频在线观看| 成人黄色在线看| 色综合天天狠狠| 欧美无砖砖区免费| 欧美日韩dvd在线观看| 5858s免费视频成人| 日韩精品专区在线| 26uuu亚洲婷婷狠狠天堂| 久久午夜电影网| 国产精品黄色在线观看| 一区二区在线观看视频| 一区二区三区四区激情| 爽爽淫人综合网网站| 成人app在线观看| 欧美亚洲一区三区| 欧美一区二区三区电影| 久久影视一区二区| 国产精品国产三级国产普通话99| 亚洲人成网站精品片在线观看| 亚洲综合在线第一页| 蜜臀精品久久久久久蜜臀| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美中文字幕一区二区三区亚洲| 在线视频欧美区| 日韩久久免费av| 亚洲欧洲成人av每日更新| 天堂精品中文字幕在线| 国产精品小仙女| 色女孩综合影院| 日韩精品一区二区三区在线| 国产嫩草影院久久久久| 亚洲在线一区二区三区| 国精品**一区二区三区在线蜜桃 | 一区在线观看视频| 午夜亚洲国产au精品一区二区 | 中文字幕亚洲综合久久菠萝蜜| 亚洲视频一区二区在线| 青草av.久久免费一区| 99re这里只有精品6| 欧美一级片免费看| 亚洲精选视频在线| 国产成人综合亚洲91猫咪| 欧美日韩视频专区在线播放| 国产精品日产欧美久久久久| 日韩精品亚洲一区| 色噜噜偷拍精品综合在线| 久久久噜噜噜久噜久久综合|