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

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

?? contree.c

?? 數據挖掘算法BIRCH源碼 c語言版本。
?? C
字號:
/****************************************************************File Name:   contree.CAuthor: Tian Zhang, CS Dept., Univ. of Wisconsin-Madison, 1995               Copyright(c) 1995 by Tian Zhang                   All Rights ReservedPermission to use, copy and modify this software must be grantedby the author and provided that the above copyright notice appear in all relevant copies and that both that copyright notice and this permission notice appear in all relevant supporting documentations. Comments and additions may be sent the author at zhang@cs.wisc.edu.******************************************************************/#include "global.h"#include "util.h"#include "vector.h"#include "rectangle.h"#include "cfentry.h"#include "cutil.h"#include "status.h"#include "cftree.h"#include "contree.h"#include "components.h"ConNode::ConNode(int size, Stat* Stats){actsize=size;entry=new Entry[size];child=new ConNode*[size];for (int i=0; i<size; i++) {	entry[i].Init(Stats->Dimension);	child[i]=NULL;	}}ConNode::~ConNode(){	delete [] entry;	delete [] child;}void ConNode::Free() {	for (int i=0; i<actsize; i++) 		if (child[i]!=NULL) child[i]->Free();	delete [] entry;	delete [] child;	}int ConNode::N() const {	int tmp = 0;	for (int i=0; i<actsize; i++) 		tmp+=entry[i].n;	return tmp;}	void ConNode::SX(Vector& tmpsx) const {	tmpsx.Reset();	for (int i=0; i<actsize; i++)		tmpsx+=entry[i].sx;	}double ConNode::SXX() const {	double tmp=0;	for (int i=0; i<actsize; i++) 		tmp+=entry[i].sxx;	return tmp;}void ConNode::CF(Entry& tmpcf) const {	tmpcf.Reset();	for (int i=0; i<actsize; i++)		tmpcf+=entry[i];	}double ConNode::Radius() const {	Entry tmpent;	tmpent.Init(entry[0].sx.dim);	this->CF(tmpent);	return tmpent.Radius();	}double ConNode::Diameter() const {	Entry tmpent;	tmpent.Init(entry[0].sx.dim);	this->CF(tmpent);	return tmpent.Diameter();	}double ConNode::Fitness(short ftype) const {	Entry tmpent;	tmpent.Init(entry[0].sx.dim);	this->CF(tmpent);	return tmpent.Fitness(ftype);	}#ifdef RECTANGLEvoid ConNode::Rect(Rectangle& tmprect) const {	tmprect.Reset();	for (int i=0; i<actsize; i++)		tmprect+=entry[i].rect;	}#endif RECTANGLEint ConNode::Size() const { int size=1;if (child[0]==NULL) return size; else   {	for (int i=0; i<actsize; i++)		size+=child[i]->Size();	return size;	}}int ConNode::Depth() const {if (child[0]==NULL) return 1; else	return 1+child[0]->Depth();}int ConNode::LeafNum() const { int num=0;if (child[0]==NULL) return 1; else 	{	for (int i=0; i<actsize; i++)		num+=child[i]->LeafNum();	return num;	}}int ConNode::NonleafNum() const { int num=1;if (child[0]==NULL) return 0; else 	{	for (int i=0; i<actsize; i++)		num+=child[i]->NonleafNum();	return num;	}}int ConNode::NumLeafEntry() const {int num=0;if (child[0]==NULL) return actsize; else 	{	for (int i=0; i<actsize; i++)		num+=child[i]->NumLeafEntry();	return num;	}}int ConNode::NumNonleafEntry() const { int num=actsize;if (child[0]==NULL) return 0; else 	{	for (int i=0; i<actsize; i++)		num+=child[i]->NumNonleafEntry();	return num;	}}int ConNode::NumEntry() const { int num=actsize;if (child[0]==NULL) return actsize;else 	{	for (int i=0; i<actsize; i++)		num+=child[i]->NumEntry();	return num;	}}void ConNode::Print_Tree(short ind, ostream &fo) const{int i;if (child[0]==NULL) { // leaf	for (i=0; i<actsize; i++) {		indent(ind,fo); 		fo<<entry[i]<< endl;		}	}else { // nonleaf	for (i=0; i<actsize; i++) {		indent(ind,fo); 		fo<<entry[i]<<endl;		child[i]->Print_Tree(ind+5,fo);		}	}}void ConNode::Print_Tree(short ind, ofstream &fo) const{int i;if (child[0]==NULL) { // leaf	for (i=0; i<actsize; i++) {		indent(ind,fo); 		fo<<entry[i]<< endl;		}	}else { // nonleaf	for (i=0; i<actsize; i++) {		indent(ind,fo); 		fo<<entry[i]<<endl;		child[i]->Print_Tree(ind+5,fo);		}	}}void ConNode::Print_Summary(ostream &fo) const {Entry tmpent;tmpent.Init(entry[0].sx.dim);CF(tmpent);fo<<"Root CF\t"<<tmpent<<endl;fo<<"FootPrint\t"<<sqrt(tmpent.Radius())<<"\t"<<sqrt(tmpent.Diameter())<<endl;#ifdef RECTANGLERectangle tmprect;tmprect.Init(entry[0].sx.dim);Rect(tmprect);fo<<"Root Rectangle\t"<<tmprect<<endl;#endif RECTANGLEfo<<"Leaf Nodes\t"<<LeafNum()<<endl;fo<<"Nonleaf Nodes\t"<<NonleafNum()<<endl;fo<<"Tree Size\t"<<Size()<<endl;fo<<"Tree Depth\t"<<Depth()<<endl;fo<<"Leaf Entries\t"<<NumLeafEntry()<<endl;fo<<"Nonleaf Entries\t"<<NumNonleafEntry()<<endl;fo<<"Entries\t"<<NumEntry()<<endl;}void ConNode::Print_Summary(ofstream &fo) const {Entry tmpent;tmpent.Init(entry[0].sx.dim);CF(tmpent);fo<<"Root CF\t"<<tmpent<<endl;fo<<"FootPrint\t"<<sqrt(tmpent.Radius())<<"\t"<<sqrt(tmpent.Diameter())<<endl;#ifdef RECTANGLERectangle tmprect;tmprect.Init(entry[0].sx.dim);Rect(tmprect);fo<<"Root Rectangle\t"<<tmprect<<endl;#endif RECTANGLEfo<<"Leaf Nodes\t"<<LeafNum()<<endl;fo<<"Nonleaf Nodes\t"<<NonleafNum()<<endl;fo<<"Tree Size\t"<<Size()<<endl;fo<<"Tree Depth\t"<<Depth()<<endl;fo<<"Leaf Entries\t"<<NumLeafEntry()<<endl;fo<<"Nonleaf Entries\t"<<NumNonleafEntry()<<endl;fo<<"Entries\t"<<NumEntry()<<endl;}void ConNode::Connect(Stat* Stats){int 	   i,j;double     density;Graph 	   *graph;Components *Compos;Component  *Compo;int	   newsize,allsize;Entry	   *newentry;ConNode    **newchild;if (child[0]==NULL) { // leaf 	density=Stats->NoiseRate*Stats->NewRoot->N()/Stats->CurrEntryCnt;	// connect graph based on density and connectivity	graph=new Graph(actsize,entry,Stats->Ftype,Stats->CurFt,density);	Compos=graph->Connected_Components();	Compos->ResetComponent();	newsize=allsize=Compos->Size();	for (i=0;i<allsize;i++) {		Compo=Compos->CurComponent();		if (Compo->Size()==1 && Compo->TupleCnt(entry)<density) {			newsize--;			Stats->OutlierEntryCnt++;			Stats->OutlierTupleCnt+=Compo->TupleCnt(entry);			}		}	if (newsize<actsize) {		newentry=new Entry[newsize];		newchild=new ConNode*[newsize];		for (i=0;i<newsize;i++) {			newentry[i].Init(entry[i].sx.dim);			newchild[i]=NULL;			}				Compos->ResetComponent(); 		j=0;		for (i=0;i<allsize;i++) {			Compo=Compos->CurComponent();			if (!(Compo->Size()==1&&Compo->TupleCnt(entry)<density)) {				Compo->EntryChild(Stats,entry,child,						  newentry[j],newchild[j]);				j++;				}			}		actsize=newsize;		delete [] entry;		entry=newentry;		delete [] child;		child=newchild;		}	}else { // nonleaf	graph=new Graph(actsize,entry);	Compos=graph->Connected_Components();	newsize=Compos->Size();	if (newsize<actsize) {		newentry=new Entry[newsize];		newchild=new ConNode*[newsize];		for (i=0;i<newsize;i++) {			newentry[i].Init(entry[i].sx.dim);			newchild[i]=NULL;			Compo=Compos->CurComponent();			Compo->EntryChild(Stats,entry,child,					  newentry[i],newchild[i]);			}		actsize=newsize;		delete [] entry;		entry=newentry;		delete [] child;		child=newchild;		}	for (i=0;i<actsize;i++) child[i]->Connect(Stats);	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蝌蚪porny九色| 日韩高清不卡一区| 久久精品无码一区二区三区| 欧美精品 国产精品| 欧美三级视频在线播放| 色94色欧美sute亚洲线路一ni| 波多野结衣在线aⅴ中文字幕不卡| 国产在线精品视频| 国产精品亚洲第一区在线暖暖韩国| 免费看黄色91| 精品一二三四在线| 国产精品中文有码| 成人av在线影院| 99精品国产99久久久久久白柏| 一本色道亚洲精品aⅴ| 欧美午夜精品一区二区蜜桃| 欧美无砖专区一中文字| 欧美一级理论片| 精品国产乱码久久久久久夜甘婷婷| 国产亚洲精品bt天堂精选| 国产亚洲成aⅴ人片在线观看| 国产亚洲成aⅴ人片在线观看| 亚洲欧洲美洲综合色网| 一区二区三区高清不卡| 日本中文一区二区三区| 久久成人免费网站| av资源网一区| 欧美日本一区二区三区四区| 精品1区2区在线观看| 中日韩免费视频中文字幕| 亚洲精品成人少妇| 免费高清不卡av| 成人av集中营| 欧美一区二区啪啪| 中文字幕精品综合| 日产欧产美韩系列久久99| 国产精品1区2区3区| 色综合久久久久网| 久久综合999| 夜色激情一区二区| 国产精品乡下勾搭老头1| 日本韩国欧美在线| 久久精品免视看| 视频一区二区欧美| 99热这里都是精品| 日韩网站在线看片你懂的| 亚洲欧洲日韩在线| 国内不卡的二区三区中文字幕| 91精彩视频在线观看| 久久综合给合久久狠狠狠97色69| 亚洲人成网站精品片在线观看| 蜜桃av一区二区在线观看| 99精品久久99久久久久| 精品国产乱码久久久久久免费| 亚洲综合视频在线观看| 成人app下载| 久久久久国色av免费看影院| 午夜久久久久久久久| a在线欧美一区| 日本一区二区三区电影| 精品在线一区二区三区| 欧美性色欧美a在线播放| 亚洲色欲色欲www| 国产成人免费视频网站 | 亚洲色图视频免费播放| 国内精品伊人久久久久影院对白| 欧美三级日韩三级国产三级| 亚洲激情综合网| 99久久精品免费观看| 中文av字幕一区| 成人av在线播放网址| 久久精品亚洲精品国产欧美kt∨| 精品一区二区三区欧美| 91精品国产美女浴室洗澡无遮挡| 午夜电影久久久| 欧美久久一区二区| 午夜影视日本亚洲欧洲精品| 欧洲精品视频在线观看| 麻豆传媒一区二区三区| 555夜色666亚洲国产免| 性做久久久久久免费观看| 欧美综合色免费| 亚洲成人av一区二区三区| 在线观看一区不卡| 婷婷综合另类小说色区| 7777精品伊人久久久大香线蕉完整版 | 久久久久久久久伊人| 国内外精品视频| 国产精品少妇自拍| av电影一区二区| 亚洲麻豆国产自偷在线| 欧美亚洲综合在线| 日韩成人精品在线观看| 欧美变态tickle挠乳网站| 国产综合久久久久影院| 国产精品免费av| 欧美亚洲图片小说| 麻豆免费看一区二区三区| 欧美精品一区二区三区高清aⅴ| 国产美女精品在线| 亚洲人成精品久久久久久| 欧美日韩在线观看一区二区| 秋霞电影一区二区| 中文久久乱码一区二区| 欧美午夜精品久久久久久孕妇| 奇米影视7777精品一区二区| 久久精品免视看| 在线观看亚洲成人| 国产在线观看一区二区| 一区二区三区蜜桃| 欧美tickling挠脚心丨vk| 99麻豆久久久国产精品免费| 香蕉乱码成人久久天堂爱免费| 欧美精品一区男女天堂| 91丝袜高跟美女视频| 免费看日韩精品| 自拍偷自拍亚洲精品播放| 欧美一级艳片视频免费观看| 成人福利电影精品一区二区在线观看| 日本 国产 欧美色综合| 中文字幕一区二区三区四区| 7777精品伊人久久久大香线蕉| 高清shemale亚洲人妖| 天天综合日日夜夜精品| 国产精品久久国产精麻豆99网站| 欧美电影一区二区| 91理论电影在线观看| 国产精品一级黄| 日韩精品一二三四| 亚洲激情av在线| 国产精品三级视频| 精品区一区二区| 这里只有精品视频在线观看| 91小视频在线免费看| 国产电影一区二区三区| 美国十次了思思久久精品导航| 亚洲蜜臀av乱码久久精品 | 99精品国产热久久91蜜凸| 韩国视频一区二区| 午夜精品福利一区二区蜜股av| 国产精品理伦片| 国产日韩欧美激情| 欧美精品一区二区三| 欧美岛国在线观看| 欧美一卡二卡在线观看| 欧美日韩精品三区| 91久久精品一区二区三| 色呦呦日韩精品| 972aa.com艺术欧美| 成人动漫一区二区三区| 粉嫩在线一区二区三区视频| 久久99精品一区二区三区三区| 日本成人中文字幕在线视频| 亚洲va中文字幕| 图片区小说区区亚洲影院| 视频一区视频二区中文字幕| 亚洲国产综合人成综合网站| 亚洲自拍偷拍综合| 亚洲午夜久久久久久久久久久| 一区二区三区四区五区视频在线观看| 1024成人网| 亚洲丝袜制服诱惑| 一区二区免费在线播放| 亚洲第一主播视频| 奇米888四色在线精品| 蜜桃视频在线观看一区| 九九热在线视频观看这里只有精品| 久久精品久久精品| 国产一区二区三区在线观看免费| 国产成人综合亚洲网站| 99精品一区二区| 在线观看亚洲成人| 日韩免费高清av| 中文久久乱码一区二区| 亚洲欧美日韩综合aⅴ视频| 五月婷婷欧美视频| 久久精品国产久精国产| 丰满放荡岳乱妇91ww| 91高清视频免费看| 欧美一区二区在线免费观看| 欧美不卡一区二区| 日韩美女视频一区二区 | 久久综合色天天久久综合图片| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品久久看| 偷窥少妇高潮呻吟av久久免费| 精品亚洲国内自在自线福利| 97精品国产97久久久久久久久久久久| 在线观看亚洲a| 国产日韩精品一区二区浪潮av| 一区二区三区不卡视频在线观看| 蜜臀a∨国产成人精品| 成人aa视频在线观看| 91精品国产欧美日韩| 中文字幕中文字幕一区二区| 日韩电影免费一区| 99久久99久久精品免费观看 | 成人av网站免费| 欧美理论片在线| 中文字幕日韩一区|