00001 00002 #ifndef _PACKTREE_H_ 00003 #define _PACKTREE_H_ 00004 00005 00006 #include "packtree_base.h" 00007 #include "packdata_list.h" 00008 #include "packcontainer.h" 00009 #include "liftbase.h" 00010 00011 00043 00056 00057 class packtree : public packtree_base { 00058 private: 00059 00064 bool foundOriginalData; 00066 bool foundBestBasisVal; 00067 00068 private: 00070 packtree( const packtree &rhs ) {}; 00072 packtree() {}; 00073 00074 double bestBasisWalk( packnode<double> *root ); 00075 00076 void buildBestBasisList( packnode<double> *root, 00077 packdata_list<double> &list ); 00078 00079 void checkBestBasis( packnode<double> *root ); 00080 00081 void cleanTree(packnode<double> *root, bool removeMark ); 00082 00083 public: 00084 00085 packtree( const double *vec, 00086 const size_t n, 00087 liftbase<packcontainer, double> *w ); 00088 00090 ~packtree() {} 00091 00092 void prCost(); 00093 void prBestBasis(); 00094 00095 void bestBasis(); 00096 00097 bool bestBasisOK(); 00098 00099 packdata_list<double> getBestBasisList(); 00100 00101 }; // packtree 00102 00103 #endif