@Override
    public String toString()
    {
        String result = "[";
        Queue<MapNode> q = new Queue<>();
        if (!isEmpty())   q.enqueue((MapNode)root);
        while (!q.isEmpty())
        {
            MapNode n = q.dequeue();
            if (n.left != null) q.enqueue((MapNode)n.left);
            if (n.right != null) q.enqueue((MapNode)n.right);
            result += n.key + "=" + n.value + ", ";
        }
        return result + "]";
    }