• 大小: 974KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: C/C++
  • 标签: C++  

资源简介

层次聚类算法C++ VS2010 调试运行成功

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “AgeneCluster.h“
#include 
#include 
#include 
using namespace std;
CAgeneCluster::CAgeneCluster(void)
{
}


CAgeneCluster::~CAgeneCluster(void)
{
}
//计算两个样本点之间的欧几里得距离
double CAgeneCluster::getDistance(sDataPoint dpAsDataPoint dpB)
{
        double distance=0;  
distance= pow(dpA.x-dpB.x2) + pow(dpA.y-dpB.y2);
        return distance;
}
list* CAgeneCluster::initialCluster(list *dataPoints)
{
       list* originalClusters=new list ;

   int i=0;
       for(list::iterator iter = dataPoints->begin();iter != dataPoints->end();iter++)
   {
   sDataPoint tempDataPoint=*iter;//取出数据,   
               sCluster tempCluster;
       tempCluster.clusterLabel=0;
       tempCluster.datapointList=new list;
   tempCluster.clusterLabel=i;       //初始类簇号为各原数据顺序号
   tempCluster.datapointList->push_back(tempDataPoint);
          // tempCluster.datapointList.push_back();//每一个数据为一类
           originalClusters->push_back(tempCluster);//originalClusters为类簇序列
   i++;
       }
       return originalClusters;
   }
list*  CAgeneCluster::mergeCluster(list* clustersint mergeIndexAint mergeIndexB)//mergeIndexA B 是类簇标号
   {
   sCluster tempCluster tempClusterA tempClusterB;
   int nBreak=0;//计算找到的次数,以提前退出循环,节省时间
        if (mergeIndexA != mergeIndexB)//分属于不同的类簇则合并.
{   // 将cluster[mergeIndexB]中的DataPoint加入到 cluster[mergeIndexA]
for(list::iterator iter = clusters->begin();iter != clusters->end();iter++)
 {//把mergeIndexA所在类簇提取出来。
  tempCluster=*iter;//以下程序找出mergeIndexA and B所在类簇,并从链表中删除 B类簇。
 if(tempCluster.clusterLabel==mergeIndexA)
{
   nBreak++;//计算找到的次数,以提前退出循环,节省时间
   tempClusterA= *iter;                 
 }//end for  if(tempCluster.clusterLabel==mergeIndexA)
      if(tempCluster.clusterLabel==mergeIndexB)
{//并从链表中删除 B类簇。
     tempClusterB=*iter;
nBreak++;//计算找到的次数,以提前退出循环,节省时间    
                 if(clusters->size()==1)
  {
   clusters->erase(iter);
  break;
}
else if(clusters->size()>1 && mergeIndexB==(*--clusters->end( )).clusterLabel)
  {
   clusters->erase( --clusters->end( ));
}
else if(clusters->size()>1 &&  mergeIndexB!=(*--clusters->end( )).clusterLabel)
{  
  iter=clusters->erase(iter);
    if(iter!=clusters->begin())
iter--;
}
 }//end for  if(tempCluster.clusterLabel==mergeIndexB)
 if(nBreak==2)
 {//找到两个类簇,则提前退出循环,节省时间。
 nBreak=0;
 break;
 }
} // end for for(list::iterator iter
list* dpA =new list;
dpA= tempClusterA.datapointList; //把clusterA中的数据集提取出来。
        list* dpB  =new list;
dpB= tempClusterB.datapointList;

 for(list::iterator iter = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      81408  2016-06-22 11:29  Hierarchical_Test\Debug\Hierarchical_Test.exe

     文件     502208  2016-06-22 11:29  Hierarchical_Test\Debug\Hierarchical_Test.ilk

     文件     814080  2016-06-22 11:29  Hierarchical_Test\Debug\Hierarchical_Test.pdb

     文件       7004  2012-06-09 21:54  Hierarchical_Test\Hierarchical_Test\AgeneCluster.cpp

     文件        781  2012-06-09 20:55  Hierarchical_Test\Hierarchical_Test\AgeneCluster.h

     文件        122  2012-06-09 11:14  Hierarchical_Test\Hierarchical_Test\DataPoint.cpp

     文件        100  2012-06-09 10:55  Hierarchical_Test\Hierarchical_Test\DataPoint.h

     文件     265724  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\AgeneCluster.obj

     文件       3306  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\cl.command.1.tlog

     文件      24358  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\CL.read.1.tlog

     文件       2394  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\CL.write.1.tlog

     文件       3552  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\DataPoint.obj

     文件          2  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.exe.embed.manifest

     文件         68  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.exe.embed.manifest.res

     文件         64  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.lastbuildstate

     文件       1584  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.log

     文件     125317  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.obj

     文件    1179648  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.pch

     文件          0  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.write.1.tlog

     文件        224  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test_manifest.rc

     文件       1776  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\link.command.1.tlog

     文件       3626  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\link.read.1.tlog

     文件       1018  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\link.write.1.tlog

     文件        684  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\rc.command.1.tlog

     文件        386  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\rc.read.1.tlog

     文件        394  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\rc.write.1.tlog

     文件      12135  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\stdafx.obj

     文件     371712  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\vc100.idb

     文件     339968  2016-06-22 11:29  Hierarchical_Test\Hierarchical_Test\Debug\vc100.pdb

     文件       1480  2016-06-22 11:30  Hierarchical_Test\Hierarchical_Test\Hierarchical_Test.cpp

............此处省略19个文件信息

评论

共有 条评论