111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/*-------------------------------------------------------------------------- 211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelCopyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved. 311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelRedistribution and use in source and binary forms, with or without 511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelmodification, are permitted provided that the following conditions are met: 611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Redistributions of source code must retain the above copyright 711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel notice, this list of conditions and the following disclaimer. 811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Redistributions in binary form must reproduce the above copyright 911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel notice, this list of conditions and the following disclaimer in the 1011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel documentation and/or other materials provided with the distribution. 1111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Neither the name of The Linux Foundation nor 1211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel the names of its contributors may be used to endorse or promote 1311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel products derived from this software without specific prior written 1411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel permission. 1511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 1611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelNON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 2011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 2311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 2511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 2611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel--------------------------------------------------------------------------*/ 2811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifndef _MAP_H_ 2911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define _MAP_H_ 3011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 3111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#include <stdio.h> 3211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 3311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltemplate <typename T,typename T2> 3411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelclass Map 3511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 3611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel struct node { 3711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel T data; 3811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel T2 data2; 3911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node* prev; 4011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node* next; 4111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node(T t, T2 t2,node* p, node* n) : 4211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel data(t), data2(t2), prev(p), next(n) {} 4311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel }; 4411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node* head; 4511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node* tail; 4611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node* tmp; 4711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel unsigned size_of_list; 4811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel static Map<T,T2> *m_self; 4911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel public: 5011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel Map() : head( NULL ), tail ( NULL ),tmp(head),size_of_list(0) {} 5111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel bool empty() const { 5211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return ( !head || !tail ); 5311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 5411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel operator bool() const { 5511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return !empty(); 5611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 5711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel void insert(T,T2); 5811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel void show(); 5911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel int size(); 6011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel T2 find(T); // Return VALUE 6111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel T find_ele(T);// Check if the KEY is present or not 6211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel T2 begin(); //give the first ele 6311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel bool erase(T); 6411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel bool eraseall(); 6511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel bool isempty(); 6611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ~Map() { 6711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel while (head) { 6811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node* temp(head); 6911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel head=head->next; 7011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel size_of_list--; 7111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete temp; 7211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 7311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 7411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}; 7511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 7611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 7711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelT2 Map<T,T2>::find(T d1) 7811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 7911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 8011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 8111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel while (tmp) { 8211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if (tmp->data == d1) { 8311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return tmp->data2; 8411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 8511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 8611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = tmp->next; 8711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 8811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 8911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return 0; 9011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 9111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 9211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 9311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelT Map<T,T2>::find_ele(T d1) 9411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 9511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 9611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 9711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel while (tmp) { 9811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if (tmp->data == d1) { 9911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return tmp->data; 10011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 10111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 10211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = tmp->next; 10311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 10411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 10511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return 0; 10611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 10711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 10811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 10911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelT2 Map<T,T2>::begin() 11011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 11111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 11211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 11311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if (tmp) { 11411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return (tmp->data2); 11511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 11611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 11711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return 0; 11811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 11911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 12011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 12111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelvoid Map<T,T2>::show() 12211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 12311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 12411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 12511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel while (tmp) { 12611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel printf("%d-->%d\n",tmp->data,tmp->data2); 12711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = tmp->next; 12811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 12911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 13011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 13111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 13211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelint Map<T,T2>::size() 13311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 13411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel int count =0; 13511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 13611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 13711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel while (tmp) { 13811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = tmp->next; 13911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel count++; 14011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 14111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 14211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return count; 14311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 14411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 14511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 14611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelvoid Map<T,T2>::insert(T data, T2 data2) 14711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 14811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tail = new node(data, data2,tail, NULL); 14911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 15011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if ( tail->prev ) 15111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tail->prev->next = tail; 15211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 15311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if ( empty() ) { 15411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel head = tail; 15511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp=head; 15611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 15711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 15811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 15911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel size_of_list++; 16011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 16111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 16211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 16311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelbool Map<T,T2>::erase(T d) 16411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 16511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel bool found = false; 16611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 16711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node* prevnode = tmp; 16811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node *tempnode; 16911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 17011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel while (tmp) { 17111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if ((head == tail) && (head->data == d)) { 17211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel found = true; 17311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tempnode = head; 17411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel head = tail = NULL; 17511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete tempnode; 17611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel break; 17711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 17811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 17911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if ((tmp ==head) && (tmp->data ==d)) { 18011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel found = true; 18111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tempnode = tmp; 18211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = tmp->next; 18311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp->prev = NULL; 18411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel head = tmp; 18511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tempnode->next = NULL; 18611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete tempnode; 18711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel break; 18811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 18911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 19011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if ((tmp == tail) && (tmp->data ==d)) { 19111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel found = true; 19211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tempnode = tmp; 19311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel prevnode->next = NULL; 19411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp->prev = NULL; 19511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tail = prevnode; 19611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete tempnode; 19711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel break; 19811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 19911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 20011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if (tmp->data == d) { 20111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel found = true; 20211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel prevnode->next = tmp->next; 20311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp->next->prev = prevnode->next; 20411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tempnode = tmp; 20511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel //tmp = tmp->next; 20611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete tempnode; 20711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel break; 20811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 20911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 21011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel prevnode = tmp; 21111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = tmp->next; 21211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 21311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 21411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if (found)size_of_list--; 21511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 21611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return found; 21711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 21811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 21911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 22011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelbool Map<T,T2>::eraseall() 22111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 22211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel node *tempnode; 22311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tmp = head; 22411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 22511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel while (head) { 22611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tempnode = head; 22711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tempnode->next = NULL; 22811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel head = head->next; 22911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete tempnode; 23011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 23111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 23211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel tail = head = NULL; 23311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return true; 23411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 23511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 23611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 23711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel template <typename T,typename T2> 23811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelbool Map<T,T2>::isempty() 23911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 24011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if (!size_of_list) return true; 24111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel else return false; 24211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 24311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 24411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif // _MAP_H_ 245