Previous: sll_utraverse, Up: Singly Linked Lists
Traverse a singly linked list, processing each node.
#include <linklist/linklist.h>int sll_utraverse_d( SLinkList ull, int (*action)(void *node,void *udata), void *udata, void *ndata );
SLinkList ull
- A handle to the list to traverse
int (*action)(void *node,void *udata)
- The user supplied action routine applied to each node
void *udata
- a pointer to data to be passed to the action routine
void *ndata
- a pointer to a
void *
variable which will recieve the data pointer of the node which caused the traversal to be aborted. The type really isvoid **
.
This routine walks along a list, calling a user supplied action
function at each node. The action routine is passed the node's data
pointer as well as a pointer provided by the calling routine, thus
allowing arbitrary data to be available to the action routine.
If an invocation of the action routine returns non-zero, the traversal is
aborted, the current node's data pointer is stored in the location
specified by the ndata
argument, and the action routine's
return value is returned.
Compare this to sll_traverse, sll_traverse_d, and sll_utraverse.
If the action routines all return ‘0’, it returns ‘0’, else it returns the value returned by the last action routine called.