java树集TreeSet<E>类的数据排列问题

书上说:
树集用add方法添加节点,节点会按其存放的数据的“大小”顺序一层一层地依次排列,在同一层中的节点从左到右按“大小”顺序递增排列,下一层的都比上一层的小。
然后给了一个例子和相应图示:

TreeSet<String> mytree = new TreeSet<String>();
        mytree.add("boy");
        mytree.add("zoo");
        mytree.add("apple");
        mytree.add("girl"); 

图片说明
这里不明白的是为什么是这么排列?boy和girl这两个单词?如果按照大小顺序,girl单词不应该在boy和zoo之间吗?
树集TreeSet类究竟是按怎样一种方式排列数据的?二叉树?
那二叉树又是怎么排列数据的呢?

http://blog.csdn.net/pacosonswjtu/article/details/50319649