cluster.h
来自「用VC。NET2005实现优秀的最近邻搜索算法LB-TREE的模拟和图形显示。具」· C头文件 代码 · 共 89 行
H
89 行
#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 + =
减小字号Ctrl + -
显示快捷键?