代码改变世界

迅雷100题:树、栈和队列

2011-06-08 14:38  x_feng  阅读(187)  评论(0编辑  收藏  举报

image

答案:B,解析:其实4个选项前3个节点就能得到答案,后续遍历的最后一个节点a就是根节点,中序遍历a以前的都是a的左子树节点,只有一个b,defcg都是a的右子树,由于后续遍历a的前面是d,所以d必定是a的右子树的根节点,而中序遍历a的后边也是d,这说明,d没有左子树,因此,前序遍历的前三个节点为:abd。具体的树结构如下:

无标题

image

答案显然。

image 

答案:D,以上都有可能

image

答案:A,解析:首先这棵树是完全二叉树,除了最下一层,其它层都是满的,并且最下层节点从左到右,左边添满之后再添右边。完全二叉树的深度:绘图1

512<698<1024,因此树的深度为10,那么我们知道这棵树的前9层是一个满二叉树,节点数为:绘图1 =511,那么第10层共有698-511=187个节点,那么第9层有多少个节点呢?绘图1 =256。第9层要用多少个节点来连接第10层的节点呢?因为都是从左到右,所以要用186/2 + 1 = 94个,第9层没有孩子的节点数为256-94=162个,这就是第9层上的叶节点,也节点共有:187+162 = 349.

image

答案:C,如果一个节点有孩子就n=1,返回所有分支节点的个数。

image

(好像就这么几道题)