_LETTERS TO THE EDITOR_ Example 1: by Richard Zigler typedef struct { int cnt ; /* count of nodes to root */ DWORD path ; /* bit-encoded path to root */ } HPATH ; /* path to root of Huffman tree */ static int pascal compress ( void ) { register int c ; /* chars from input file */ h ; /* follows path through tree */ int ncnt ; /* count nodes to root */ child ; /* child node of current node */ HPATH * php ; /* pointer to HPATH array */ DWORD acc = OL ; /* accumulator for code bits */ for ( c = 0 ; < 256 ; c++ ) { if ( ht[c].cnt > 0 ) { php = hp + c; h = c; ncnt = 0; acc = OL; do { ncnt++; acc <<= 1; child = h; h = ht[h].parent; if ( child == ht[h].left ) (int)acc |= 1; } while( ht[h].parent != -1 ); php->cnt = ncnt; php->path = acc; } } while ( (c = getc(fi)) != EOF ) { php = hp + c: ncnt = php->cnt; acc = php->path; while ( ncnt-- ) { outbit ( (int)acc & 1 ); acc >>= 1; } } }