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 #ifndef _SPARSE_VECTOR_HPP_ 00026 #define _SPARSE_VECTOR_HPP_ 00027 #include "sparse-vector-node.hpp" 00028 00037 class sparseVector 00038 { 00039 public: 00040 00047 sparseVector(){ 00048 root = new sparseVectorNode(-1,(sparseVectorNode*)0); 00049 00050 }; 00051 00059 sparseVector(sparseVectorNode* p){ 00060 root=p; 00061 }; 00062 00069 void setRoot(sparseVectorNode* p) { root=p;}; 00070 00076 sparseVectorNode* getRoot() { return root; }; 00077 00086 void addAt(int,sparseVectorNode*); 00087 00088 00095 sparseVectorNode* findAt(int); 00096 00101 char* dumpAsXML(); 00102 00103 protected: 00104 00105 private: 00106 sparseVectorNode* root; 00107 00108 }; 00109 00110 #endif // _SPARSE_VECTOR_HPP_