5 friend class ClusterTree;
\r
15 m_ptrPrevDisjoint = 0;
\r
16 m_ptrNextDisjoint = 0;
\r
21 unsigned GetIndex() const { return m_uIndex; }
\r
22 ClusterNode *GetLeft() const { return m_ptrLeft; }
\r
23 ClusterNode *GetRight() const { return m_ptrRight; }
\r
24 ClusterNode *GetParent() const { return m_ptrParent; }
\r
25 double GetWeight() const { return m_dWeight; }
\r
27 const ClusterNode *GetClusterLeaf(unsigned uLeafIndex) const;
\r
28 unsigned GetClusterSize() const;
\r
29 double GetClusterWeight() const;
\r
30 double GetLeftBranchWeight() const;
\r
31 double GetRightBranchWeight() const;
\r
32 double GetLeftWeight() const;
\r
33 double GetRightWeight() const;
\r
37 double GetWeight2() const { return m_dWeight2; }
\r
38 void SetWeight2(double dWeight2) { m_dWeight2 = dWeight2; }
\r
41 void SetIndex(unsigned uIndex) { m_uIndex = uIndex; }
\r
42 void SetWeight(double dWeight) { m_dWeight = dWeight; }
\r
43 void SetLeft(ClusterNode *ptrLeft) { m_ptrLeft = ptrLeft; }
\r
44 void SetRight(ClusterNode *ptrRight) { m_ptrRight = ptrRight; }
\r
45 void SetParent(ClusterNode *ptrParent) { m_ptrParent = ptrParent; }
\r
46 void SetNextDisjoint(ClusterNode *ptrNode) { m_ptrNextDisjoint = ptrNode; }
\r
47 void SetPrevDisjoint(ClusterNode *ptrNode) { m_ptrPrevDisjoint = ptrNode; }
\r
49 ClusterNode *GetNextDisjoint() { return m_ptrNextDisjoint; }
\r
50 ClusterNode *GetPrevDisjoint() { return m_ptrPrevDisjoint; }
\r
56 ClusterNode *m_ptrLeft;
\r
57 ClusterNode *m_ptrRight;
\r
58 ClusterNode *m_ptrParent;
\r
59 ClusterNode *m_ptrNextDisjoint;
\r
60 ClusterNode *m_ptrPrevDisjoint;
\r
67 virtual ~ClusterTree();
\r
69 void Create(const DistFunc &DF);
\r
71 ClusterNode *GetRoot() const;
\r
75 void Join(ClusterNode *ptrNode1, ClusterNode *ptrNode2,
\r
76 ClusterNode *ptrJoin);
\r
77 void AddToDisjoints(ClusterNode *ptrNode);
\r
78 void DeleteFromDisjoints(ClusterNode *ptrNode);
\r
79 void Validate(unsigned uNodeCount);
\r
82 ClusterNode *m_ptrDisjoints;
\r
83 ClusterNode *m_Nodes;
\r
84 unsigned m_uNodeCount;
\r
85 unsigned m_uLeafCount;
\r