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_