// table.h
#ifndef TABLE_H_INCLUDED
#define TABLE_H_INCLUDED
#include <stddef.h>
#include <string>
#include "deep.h"
class cross_reference_table
{
public:
cross_reference_table();
void add(std::string const &w, unsigned n);
void put() const;
private:
struct tree_node;
static tree_node *add_tree
(tree_node *t, std::string const &w, unsigned n);
static void put_tree(tree_node const *t);
deep_pointer<tree_node> root;
};
inline
cross_reference_table::cross_reference_table()
{
root = NULL;
}
inline
void cross_reference_table::add
(std::string const &w, unsigned n)
{
root = add_tree(root, w, n);
}
inline
void cross_reference_table::put() const
{
put_tree(root);
}
#endif