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