UList - circular, doubly-linked list class
SYNOPSIS
#include <Unidraw/ulist.h>
DESCRIPTION
UList implements a circular, doubly-linked list. The sen-
tinel and each entry in the list are instances of the
UList class, each containing a void pointer to the data
they contain as well as pointers to the next and previous
UList instance in the list. The sentinel UList instance
is considered to represent the list.
PUBLIC OPERATIONS
UList(void* = nil)
Create a new UList instance, optionally supplying
the value for the void pointer it stores.
virtual ~UList()
Delete the entire list. Normally the sentinel,
which represents the list, is the entry that is
deleted explicitly. Note that the data on the
list, stored as void*'s, cannot be deleted in this
manner.
void Append(UList*)
void Prepend(UList*)
When performed on the sentinel, Append appends an
element to the end of the list and Prepend prepends
it to the beginning of the list. When performed on
a UList instance other than the sentinel, Append
has the effect of inserting its argument before the
instance, while Prepend has the effect of inserting
it after the instance.
void Remove(UList*)
Unlink the specified UList instance from the list
it is in. The object on which this operation is
called is irrelevant.
void Delete(void*)
Find the UList instance in this list containing the
given void pointer, remove it from the list it is
in, and delete it.
UList* Find(void*)
Return the UList instance in this list containing
the given void pointer.
UList* First()
UList* Last()
UList* End()
UList* Prev()
Return various UList instance in the list relative
to this, i.e., as if it were the sentinel. End
returns the sentinel (this) and is useful for
detecting the end of an iteration through the list;
the other operations are self-explanatory.
boolean IsEmpty()
Return whether or not the list has any elements.
void* operator()()
Return the void pointer that the UList stores.
UList* operator[](int i)
Return the ith UList in the list, where the next
element is the first, etc.
Man(1) output converted with
man2html