
This directory contains utility packages for manipulating
stacks, queues, singly-linked lists, doubly-linked lists, and circularly-linked
lists.

Usage is as follows:
  Obtain a header record for the desired data structure by calling the 
appropriate init routine, e.g. InitStack().  This will malloc a header record 
and return a pointer to it.
  All subsequent calls, e.g. to EmptyStack(), PopStack(), or PushStack() 
include the pointer to the header record as an argument.
  To deallocate a data structure's header record, simply call free() on it.

Programs must be sure to declare any record types
that will be manipulated by these packages as follows:
  struct arbRecType
    {
      struct arbRecType *next;
      struct arbRecType *prev;
      /* All other fields to be put in this record. */
    };

WARNING: These packages do NOT do complete error checking.  They assume 
reasonable input parameter values.
