00001 /* Tree 01 00002 */ 00003 00004 #ifndef aglowavTree01_hh 00005 #define aglowavTree01_hh 00006 00007 #include "aglowav/tree.hh" 00008 00009 namespace aglowav { 00010 00011 // **************************************************************** Tree01 ** 00012 00016 template<class BiClNode> 00017 class Tree01 : public BiTree<BiClNode>, public cluster::Tree<BiClNode> { 00018 00019 public: 00021 typedef ClstBiTreeTraits<BiClNode> Traits; 00022 typedef typename Traits::F F; 00023 00028 Tree01(const concepts::Space<F>& spc, const cluster::BBall<F>& ball); 00029 00031 virtual inline ~Tree01() {destructor_(root_); delete root_;} 00032 00034 inline uint nclst() const {return nclst_;} 00036 inline uint nleaf() const {return nlf_;} 00038 inline const BiClNode* root() const {return root_;} 00039 00040 private: 00042 uint nlf_; 00044 uint nclst_; 00046 BiClNode* root_; 00047 00049 BiClNode* constructor_(BiClNode* lfset); 00051 void destructor_(BiClNode* clst); 00052 }; 00053 00054 } // namespace aglowav 00055 00056 #endif // aglowavTree01_hh