Listing 6: cross_reference.h cross-reference interface now in just C++

namespace cross_reference
    {

    struct list_node
        {
        unsigned number;
        list_node *next;
        };

    struct tree_node
        {
        char *word;
        list_node *first, *last;
        tree_node *left, *right;
        };

    extern tree_node *xr;

    tree_node *add_tree
        (tree_node *t, char const *w,
           unsigned n);
    void put_tree(tree_node const *t);

    inline
    void add(char const *w, unsigned n)
        {
        xr = add_tree(xr, w, n);
        }

    inline
    void put()
        {
        put_tree(xr);
        }

    }
/* End of File */