46 #ifndef VALUE_SEM_LIST_H
47 #define VALUE_SEM_LIST_H
49 #define nihil (VDKValueItem<T>*) 0
68 VDKValueItem(
const T& data): data(data),next(nihil),prev(nihil)
108 void add(
const T& t);
112 void push(
const T& t);
117 int insert(
const T& t,
bool unique =
false);
192 head(l.head),tail(l.tail),p(l.head) {}
224 operator int() {
return p != nihil; }
316 return fetch(n)->data;
325 for(; p && !(p->data == t); p = p->next);
326 return p ? &(p->data): (T*) 0;
335 for(; p && !(p->data == x);p = p->next,t++) ;
347 x->prev->next = x->next;
351 x->next->prev = x->prev;
378 for(p = head; p && (t<n); t++, p = p->next);
388 if(! head) head = tail = i;
389 else { tail->next = i; i->prev = tail; tail = i; }
399 if(! head) head = tail = i;
400 else { head->prev = i; i->next = head; head = i; }
414 for(p = head,t=0; p && (p->data < i->data); p = p->next,t++);
416 if(unique && p && (p->data == i->data))