include/sparse-array.hpp

00001 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
00002 /*
00003  * frpuniverse
00004  * Copyright (C) Peter L. Berghold 2008 <Peter@Berghold.net>
00005  * 
00006  * frpuniverse is free software.
00007  * 
00008  * You may redistribute it and/or modify it under the terms of the
00009  * GNU General Public License, as published by the Free Software
00010  * Foundation; either version 2 of the License, or (at your option)
00011  * any later version.
00012  * 
00013  * frpuniverse is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016  * See the GNU General Public License for more details.
00017  * 
00018  * You should have received a copy of the GNU General Public License
00019  * along with frpuniverse.  If not, write to:
00020  *      The Free Software Foundation, Inc.,
00021  *      51 Franklin Street, Fifth Floor
00022  *      Boston, MA  02110-1301, USA.
00023  */
00024 
00025 #include "sparse-array-node.hpp"
00026 
00027 #ifndef _SPARSE_ARRAY_HPP_
00028 #define _SPARSE_ARRAY_HPP_
00029 
00037 class sparseArray
00038 {
00039 public:
00040                 
00044         sparseArray();
00045         
00054         void add(sparseArrayNode* p);
00055         
00067         void addAt(int row ,int column,sparseArrayNode* p);
00068         
00079         sparseArrayNode* findAt(int row,int column);
00080         
00081 #ifdef DEBUG_ON
00082 
00085         void dump();
00086 #endif
00087         
00088 protected:
00089 
00090 private:
00091         sparseArrayNode* root;
00092         
00093         sparseArrayNode* findColumnHead(int);
00094         sparseArrayNode* insertNewColumnHead(int c);
00095         
00096         
00097 };
00098 
00099 #endif // _SPARSE_ARRAY_HPP_

Generated on Fri Mar 7 16:40:53 2008 for frpuniverse by  doxygen 1.4.7