首先,这是一个数学问题,因为这是比较三个集合的元素多寡的一个问题。
是不是觉得二叉树数量少于树的数量,树的数量少于森林数量,因为所有的二叉树都是树,所有的树都是森林?但是细想这不一定对。
其实,这还是一个哲学问题,如果注意到每个集合的元素都有无穷个元素的话。
三个无穷个元素的集合怎么比较大小?
如果是有限集合,我们可以直接比较元素个数的多少,然后得出结论,但是无穷个元素又怎么处理呢?显然,从元素个数这个角度无法得到想要的答案。
但是,我们可以细想生活中类似的例子,如果你想知道一个教室的座位数以及一个班的人数孰多孰少,最好的办法就是让每个人尽量找到一个位置坐下,直到没有剩余的位置或者剩余的人,这时候如果座位有剩余,那么座位数多于人数;如果有人没座位,那么人数多于座位数;如果每个座位上都有人,并且每个人都有一个座位,那么人数与座位数相等。这里面体现了一一对应的思想,而从这个角度就可以轻易地判断出孰多孰少,方法是如果能在两个集合之间建立一一对应的关系,那么它们元素个数一样;否则,肯定能建立其中某一个集合与另外一个集合的子集的一一对应的关系,这时候第一个集合的元素个数一定少于第二个集合的元素个数。
从上面的两种方法看到,在比较有限的集合元素个数多少的两种方法里只有第二种鞥应用于无穷集合,说明第二种方法是反映问题本质的,因为反映问题本质的方法是容易推广的。
回到这个问题,如果我们能建立它们一一对应的映射关系,那么它们的元素个数必定相等。
怎么建立这种对应关系呢?
由于对于二叉树的研究较为深入,因此如果树和森林能转化为二叉树的话,那么树和森林的问题可以转化为二叉树的问题,所以前人已经研究过它们的转换了,具体怎么转换可以参照这个博文http://blog.csdn.net/linraise/article/details/11745559,值得一说的是,这种转换都是一一对应的,就是说A转换为B,B按照这个方法再经过一次转化就能转化为A。因此,这个问题最终得出的结论是它们含有元素个数一样。虽然跟直观感觉有点出入,这说明人的第一感觉一般是感性的,不一定可靠。