|  kind = (np+i)->TAG; and one of the union fields would be:
 
  value = (np+i)->data.number; provided i < M and TAG == FLOAT
  An example:
  Let use now review a typical C115 hashing problem.
 Given an array of M boxes.  Into each we are going to store
 one animal from an input queue:
 "dog", "cat", "hen", etc.
  Assume we want to store them in these boxes according to
 some hashing scheme.
  First we must compute a hash
  number based on some transformation of the animal type.
 
  H = Transform ("dog"); Then we must compute the hash index modulo M to
 determine into which box to store the animal.
 
  i = H % M; If box i
  is empty, pop the animal in.
  If the box is occupied, compute the address of the next
 available box with:
 
  i = (i +1) % M; until you find an empty box.  Note our method guarantees
 that you will eventually look in all M boxes before
 determining that there is no room at the Inn.
 |