// File name: sparse_mask.h // by Ee-Chien Chang #ifndef SPARSE_MASK_H #define SPARSE_MASK_H class item { friend ostream & operator << ( ostream&, item * ); public: item ( int st, int en, item * ne ) { start_from = st; end_at = en; next = ne; } // ~item () { //cout << "delete item " << start_from << " " << end_at << " deleted" <b) {return a;} else {return b;} } int min (int a, int b ) { if (a=nos_row ) ) { cout << "ERROR OUT OF BOUND " << " row " << index << "nos_row " << nos_row << "nos_col " << nos_col << endl; exit (0); } #endif return *table[index] ; } linked_list **table; int nos_row; int nos_col; }; //--------------------------------------------------- // M A S K T R E E //--------------------------------------------------- // just an array of sparse mask. //--------------------------------------------------- class mask_tree { public: mask_tree () { nos_level =0; mask_list = 0;} mask_tree ( int nos_level, int width, int height ); ~ mask_tree (); void reInit ( int nos_level, int width, int height ); sparse_mask & operator [] ( int index ) { return *mask_list[index] ;} private: int nos_level ; sparse_mask **mask_list ; //array [nos_level] of sparse mask }; #endif