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