changing insert_node by adding 3 printf's
Code:
bool insert_node(Bin_Node **root, Bin_Node *node)
{
    if (!*root) //parent node has no children??
    {
        printf("at end of line so add node %d\n", node->data);
        *root = node;
        return true;
    }
    else
    {
        if ((*root)->data < node->data) //the data of the parent we are looking at is less than the data of the node so go to its right child
        {
            printf("root data is %d < node data %d so go right\n", (*root)->data, node->data);
            return insert_node(&(*root)->right, node);
        }
        else if ((*root)->data != node->data)
        {
            printf("root data is %d > node data %d so go left\n", (*root)->data, node->data);
            return insert_node(&(*root)->left, node);
        }
    }
    return false; // the node already existed
}
i get the following output
Code:
at end of line so add node 20
node inserted
root data is 20 > node data 6 so go left
at end of line so add node 6
node inserted
root data is 20 > node data 3 so go left
root data is 6 > node data 3 so go left
at end of line so add node 3
node inserted
root data is 20 > node data 9 so go left
root data is 6 < node data 9 so go right
at end of line so add node 9
node inserted
root data is 20 > node data 2 so go left
root data is 6 > node data 2 so go left
root data is 3 > node data 2 so go left
at end of line so add node 2
node inserted
root data is 20 > node data 13 so go left
root data is 6 < node data 13 so go right
root data is 9 < node data 13 so go right
at end of line so add node 13
node inserted
root data is 20 < node data 54 so go right
at end of line so add node 54
node inserted
root data is 20 > node data 10 so go left
root data is 6 < node data 10 so go right
root data is 9 < node data 10 so go right
root data is 13 > node data 10 so go left
at end of line so add node 10
node inserted
root data is 20 < node data 43 so go right
root data is 54 > node data 43 so go left
at end of line so add node 43
node inserted
so clearly the insert node function is working.