private void Compact(CharVector kx, TernaryTree map, char p)
{
int k;
if (p == 0)
{
return;
}
if (sc[p] == 0xFFFF)
{
k = map.Find(kv.Arr, lo[p]);
if (k < 0)
{
k = kx.Alloc(Strlen(kv.Arr, lo[p]) + 1);
Strcpy(kx.Arr, k, kv.Arr, lo[p]);
map.Insert(kx.Arr, k, (char)k);
}
lo[p] = (char)k;
}
else
{
Compact(kx, map, lo[p]);
if (sc[p] != 0)
{
Compact(kx, map, eq[p]);
}
Compact(kx, map, hi[p]);
}
}