44 for (
q=head();
q != 0;
q =
np)
55int EST_UList::length()
const
60 for (ptr = head(); ptr != 0; ptr = ptr->next())
65int EST_UList::index(
EST_UItem *item)
const
70 for (ptr = head(); ptr != 0; ptr = ptr->next(), ++n)
77EST_UItem *EST_UList::nth_pointer(
int n)
const
82 for (i = 0, ptr = head(); ptr != 0; ptr = ptr->next(), ++i)
86 cerr <<
"Requested item #" << n <<
" off end of list" <<
endl;
100 item->p->n = item->n;
104 item->n->p = item->p;
117 return remove(nth_pointer(n),
item_free);
174 if ((a==0) || (b==0))
176 cerr <<
"EST_UList:exchange: can't exchange NULL items" <<
endl;
186 a->n =
bn == a ? b :
bn;
189 a->p =
bp == a ? b :
bp;
193 b->n =
an == b ? a :
an;
196 b->p =
ap == b ? a :
ap;
212void EST_UList::exchange(
int i,
int j)
219 for (k=0,p = head(); p != 0; p = p->next(),k++)
227 if ((a==0) || (b==0))
229 cerr <<
"EST_UList:exchange: can't exchange items " << i <<
230 " and " <<
j <<
" (off end of list)" <<
endl;
237void EST_UList::reverse()
241 for (p=head(); p != 0; p=
q)
279bool EST_UList::operator_eq(
const EST_UList &a,
285 for (p = a.head(); p != NULL; p = p->next()){
308 for (ptr = l.head(); ptr != 0; ptr = ptr->next(), ++n)
365 if((i !=
j) && (i->prev() !=
j)){
386 q = partition(p,r,
gt, exchange);
387 qsort_sub(l,p,
q,
gt, exchange);
388 qsort_sub(l,
q->next(),r,
gt, exchange);
396 qsort_sub(l,l.head(),l.tail(),
gt, exchange);