void insert (struct tnode **t, int content)
{
  if (*t)
    if ((*t)->content == content)
      return;
    else if ((*t)->content < content)
      insert (&(*t)->right, content);
    else
      insert (&(*t)->left, content);
  else {
    struct tnode *n = malloc (sizeof (struct tnode));
    if (n == NULL) {
      fputs ("Out of memory\n", stderr);
      exit (1);
    } else {
      n->left = n->right = NULL;
      n->content = content;
      *t = n;
    }
  }
}