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

📄 cluster.h

📁 用VC。NET2005实现优秀的最近邻搜索算法LB-TREE的模拟和图形显示。具有建立优良数据结构和搜索功能
💻 H
字号:
#pragma once
#include "afx.h"
#include "NPoint.h"
#include "afxcoll.h"

class Cluster :public CObject
{
public:
	Cluster(void);
	Cluster(int Dim,int Lev);
public:
	~Cluster(void);
protected:
	// 聚类内点的维度
	int dimension;
	// 聚类的均值中心点
	NPoint *MeanPoint;
	// 聚类的半径
	double Radius;
	// 聚类的子聚类
	CObArray SubCluster;
public:
	// 获得聚类的维度
	int GetDimension(void);
public:
	// 获得聚类的中心点
	NPoint* GetMeanPoint(void);
public:
	// 获得聚类的半径
	double GetRadius(void);
public:
	// 插入新的子聚类
	void InsertSubCluster(Cluster* Sub);
protected:
	// 聚类所在的L层
	int Level;
public:
	// 获得聚类的层次信息
	int GetLevel(void);
public:
	// 计算聚类中心点
	void ComputeMean(void);
public:
	// 计算聚类的半径
	void ComputeRadius(void);
public:
	// 当聚类是叶子节点时,自身的点就是均值中心点
	void InitialMeanPoint(NPoint* PointPtr);
public:
	// 获得子聚类的数组指针
	CObArray* GetSubCluster(void);
public:
	// 设置聚类层次
	void SetLevel(int Lev);
protected:
	// 标记聚类节点是否是叶子节点,如果是叶子节点,标记叶子节点的编号
	int Tag;
public:
	// 获得标记信息
	int GetTag(void);
public:
	// 设置标记位
	void SetTag(int T);
protected:
	// 子聚类之间的距离矩阵指针
	double* DisArray;
public:
	// 获得距离矩阵指针
	double* GetDisArray(void);
public:
	// 计算聚类之间的矩阵
	void ComputeDisArr(void);
public:
	// 获得聚类中距离最近的两个子聚类
	double GetClosePairs(int& ClusterA, int& ClusterB);
protected:
	// 聚类中拥有的样本点数
	int PointNum;
public:
	// 聚合子聚类
	void AggSubCluster(double Threshold);
public:
	// 在二维坐标系下图形显示聚类
	void Illustrate(CDC* pDC, int Zoom, int CoordinateX, int CoordinateY,int Order,NPoint* Mean);
public:
	// 计算查询点到此举类的下限距离
	double DisLB(NPoint* QueryPoint);
};

⌨️ 快捷键说明

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