//
// xrt.cpp - cross-reference table
//
#include <stdio.h>
#include <string.h>
#include "xrt.h"
class treenode
{
public:
treenode(const char *w, unsigned n);
~treenode();
char *word;
lns lines;
xrt left, right;
};
treenode::treenode(const char *w,
unsigned n) : lines(n)
{
word = strcpy(new char[strlen(w)
+ 1], w);
}
treenode::~treenode()
{
delete [] word;
}
xrt::~xrt()
{
delete root;
}
void xrt::add(const char *w, unsigned n)
{
int cond;
if (root == 0)
root = new treenode(w, n);
else if ((cond = strcmp(w,
root->word)) == 0)
root->lines.add(n);
else if (cond < 0)
root->left.add(w, n);
else
root->right.add(w, n);
}
void xrt::print()
{
if (root != 0)
{
root->left.print();
printf("%12s:", root->word);
root->lines.print();
printf("\n");
root->right.print();
}
}
// End of File