Listing 2

/* ------------------------ linklist.h ------------------------- */

typedef struct node {
       struct node *pfwd;      /* ptr to next node in list */
       struct node *pbwd;      /* ptr to prev node in list */
       char *pstring;  /* ptr to node's string value */
       unsigned count; /* occurrence count */
} Node;

Node *get_free_node(void);
void put_free_node(Node *pnode);
Node *locate_node(const char *pstring, int match);

void add_node(void);            /* action functions */
void count_nodes(void);
void display_node(void);
void dump_asc_nodes(void);
void dump_des_nodes(void);
void help(void);
void modify_node(void);
void myexit(void);
void remove_node(void);

#define EXACT 1                 /* locate_node match flags */
#define INEXACT 2

/* ------------------------------------------------------------- */

/* End of File */