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; } } }