Моделирование кластеризации многомерных объектов в Visual С++
5
class Element{
public:
Pointz *p;
// указатель на класс элемента
Element *next;
// указатель на следующее звено
Element *previous;
// указатель на предыдущее звено
ListOfNearElementz *lnp;
//указатель на список бли-
жайших соседей
Element(){p=new Pointz;lnp=new
ListOfNearElementz;
next=0;previous=0; }
//конструктор класса
~Element(){}
// метод вычисления расстояния на плоскости от текущей точки
до точки по указателю p1
double findDistance(Pointz *p1){ return System::Math::Sqrt((p → x –
– p1 → x) · (p → x – p1 → x) + (p → y – p1 → y)*(p → y – p1 → y));}
// метод формирования кластеров, описанный вне класса
void clusteringElement(int k){}
};
Звено списка ближайших соседей (список локального сгущения
текущего элемента), описываемого классом class NearElement, вклю-
чает следующие поля: указатели на следующий и предыдущий эле-
менты — NearElement *next, NearElement * previous и указатель на
элемент выборки (точку в пространстве) Pointz *p:
class NearElement{
public:
Pointz *p;
NearElement *next;
NearElement *previous;
NearElement(){p=0; next=0; previous=0;}
~NearElement(){}
};
Звено списка ближайших элементов NearElement включает ссыл-
ки на следующий и предыдущий элементы, но не содержит ссылку на
вертикальный список элементов.
Класс, описывающий список ближайших элементов, включает
поля ссылок на начало и конец списка first, last, указатели просмотра
списка cur, sel, методы, формирующие список: добавления элемента
в голову и хвост списка. Параметр, ограничивающий радиус локаль-
ной сферы включения, описывается параметром double distance. Опи-
сание класса ListOfNearElementz, методами которого создается спи-
сок ближайших соседей, — локальное сгущение: