/*++ /* NAME /* ring 3 /* SUMMARY /* circular list management /* SYNOPSIS /* #include <ring.h> /* /* void ring_init(list) /* RING *list; /* /* void ring_prepend(list, element) /* RING *list; /* RING *element; /* /* void ring_append(list, element) /* RING *list; /* RING *element; /* /* RING *ring_pred(element) /* RING *element; /* /* RING *ring_succ(element) /* RING *element; /* /* void ring_detach(element) /* RING *element; /* /* RING_FOREACH(RING *element, RING *head) /* DESCRIPTION /* This module manages circular, doubly-linked, lists. It provides /* operations to initialize a list, to add or remove an element, /* and to iterate over a list. Although the documentation appears /* to emphasize the special role of the list head, each operation /* can be applied to each list member. /* /* Examples of applications: any sequence of objects such as queue, /* unordered list, or stack. Typically, an application embeds a RING /* structure into its own data structure, and uses the RING primitives /* to maintain the linkage between application-specific data objects. /* /* ring_init() initializes its argument to a list of just one element. /* /* ring_append() appends the named element to the named list head. /* /* ring_prepend() prepends the named element to the named list head. /* /* ring_succ() returns the list element that follows its argument. /* /* ring_pred() returns the list element that precedes its argument. /* /* ring_detach() disconnects a list element from its neighbors /* and closes the hole. This routine performs no implicit ring_init() /* on the removed element. /* /* RING_FOREACH() is a macro that expands to a for (... ; ... ; ...) /* statement that iterates over each list element in forward order. /* Upon completion, the \fIelement\fR variable is set equal to /* \fIhead\fR. The list head itself is not treated as a list member. /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA
/*--*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.