logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

UList - circular, doubly-linked list class

Description

       UList  implements  a circular, doubly-linked list.  The sentinel 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.

Name

       UList - circular, doubly-linked list class

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.

       voidAppend(UList*)voidPrepend(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.

       voidRemove(UList*)
              Unlink the specified UList instance from the list it is in.  The object on which this operation is
              called is irrelevant.

       voidDelete(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*Next()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.

       booleanIsEmpty()
              Return whether or not the list has any elements.

       void*operator()()
              Return the void pointer that the UList stores.

       UList*operator[](inti)
              Return the ith UList in the list, where the next element is the first, etc.

Unidraw                                          3 October 1990                                        UList(3U)

Synopsis

#include<Unidraw/ulist.h>

See Also