#ifndef _MY_HASHTABLE_HEAD |
002 | #define _MY_HASHTABLE_HEAD |
021 | Hash( char **,T*, short ); |
024 | void add( char **,T*, short ); |
029 | T& operator[]( char *); |
035 | for (i=0;i<2593;i++)bar[i]=NULL; |
039 | Hash<T>::Hash( char **ps,T *pv, short nm) |
044 | for (t=0;t<2593;t++)bar[t]=NULL; |
048 | for (w=(unsigned char *)ps[nm],t=1;*w;w++)t=(t*256+*w)%2593; |
049 | for (p=bar[t];p;p=p->nxt) |
050 | if ( strcmp (p->key,ps[nm])==0) |
055 | q->key= new char [( char *)w-ps[nm]+1]; |
056 | strcpy (q->key,ps[nm]); |
072 | (q=p->nxt, delete p->key, delete p); |
075 | void Hash<T>::add( char *s, T v) |
082 | for (w=(unsigned char *)s,t=1;*w;w++)t=(t*256+*w)%2593; |
083 | for (p=bar[t];p;p=p->nxt) |
084 | if ( strcmp (p->key,s)==0) |
089 | q->key= new char [( char *)w-s+1]; |
099 | void Hash<T>::add( char **ps,T *pv, short nm) |
107 | for (w=(unsigned char *)ps[nm],t=1;*w;w++)t=(t*256+*w)%2593; |
108 | for (p=bar[t];p;p=p->nxt) |
109 | if ( strcmp (p->key,ps[nm])==0) |
114 | q->key= new char [( char *)w-ps[nm]+1]; |
115 | strcpy (q->key,ps[nm]); |
124 | void Hash<T>::del( char *s) |
131 | for (w=(unsigned char *)s,t=1;*w;w++)t=(t*256+*w)%2593; |
132 | for (q=NULL,p=bar[t];p;q=p,p=p->nxt) |
133 | if ( strcmp (p->key,s)==0) |
153 | (q=p->nxt, delete p->key, delete p); |
166 | for (p=bar[i],t=0;p;t++,p=p->nxt) printf ( "[%s]" ,p->key); |
171 | T& Hash<T>::operator[]( char *s) |
178 | for (w=(unsigned char *)s,t=1;*w;w++)t=(t*256+*w)%2593; |
179 | for (p=bar[t];p;p=p->nxt) |
180 | if ( strcmp (p->key,s)==0) |
189 | p->key= new char [( char *)w-s+1]; |
|