Listing 3: Additional definitions required to implement the cross_reference_table class

// table.cpp - cross-reference table implementation

#include <stdio.h>
#include <string.h>

#include "table.h"

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

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

tree_node *
add_tree(tree_node *t, char const *w, unsigned n)
    {
    ... same as in Listing 1 ...
    }

void put_tree(tree_node const *t)
    {
    ... same as in Listing 1 ...
    }
//End of File