home *** CD-ROM | disk | FTP | other *** search
- /* $Header: slist.h,v 1.1 85/03/14 15:33:33 nicklin Exp $ */
-
- /*
- * Singly-linked list definitions
- *
- * Author: Peter J. Nicklin
- */
-
- /*
- * Singly-linked list macros
- */
- #define SLNUM(slist) (slist)->nk
- /*
- * Singly-linked list block
- */
- typedef struct slblk
- {
- char *key; /* points to a key */
- struct slblk *next; /* ptr to next list block */
- } SLBLK;
- /*
- * Singly-linked list head block
- */
- typedef struct slisthb
- {
- int nk; /* number of keys in list */
- int maxkey; /* length of longest key */
- SLBLK *head; /* pointer to first list block */
- SLBLK *curblk; /* pointer to current block */
- SLBLK *tail; /* pointer to last list block */
- } SLIST;
- /*
- * Functions defined for singly-linked list operations
- */
- extern char *slappend(); /* append key */
- extern char *slget(); /* get next key */
- extern SLIST *slinit(); /* initialize list */
- extern char *slinsert(); /* insert key */
- extern int slpop(); /* pop key */
- extern char *slprepend(); /* prepend key */
- extern void slprint(); /* print list */
- extern void slrewind(); /* rewind list */
- extern void slrm(); /* remove list item */
- extern int slsort(); /* sort list */
- extern void slsplice(); /* splice two lists */
-