1:设度为i的节点个数为ni, 该树总共有n个节点,则n=n0+n1+n2+n3. 有n个节点的树的总边数为n-1条. 总边数与度之间的关系为:n-1=0n0+1n1+2n2+3n3. 层序遍历=广度优先遍历。前序遍历=深度优先遍历。 2:一颗拥有1000个结点的树度为4,则它的最小深度是 6 如果这棵树每一层都是满的,则它的深度最小,假设它为一个四叉树,高度为h,则这个数的节点个数为(4^h - 1) / 3。n层k叉树,总共有(k^n-1)/k-1。当h = 5, 最大节点数为341, 当h = 6, 最大节点数为1365,所以最小深度应该为6 3:一颗完全二叉树上有1001个结点,其叶子结点的个数是 完全二叉树种父亲节点与孩子节点编号的关系(编号从0开始): child = 2 * parent + 1, child2 = 2 * parent + 2,所以从编号500开始的节点就没有孩子节点了, 都为叶子节点,故叶子节点位置[500, 1000],共501个 4:高度为h的完全二叉树,节点个数n在: 2^(h - 1) - 1 < n <= 2^h - 1;对应的关于h: log(n + 1) <= h < log(n + 1) + 1。 设根结点的深度为1,则一个拥有n个结点的二叉树的深度一定在(? )区间内。 最大深度: 此树为单边树,则深度为n 最小深度: 此树为完全二叉树, 如果是完全二叉树,假设高度为h, 前h-1层为满二叉树, log(2(n + 1))=log(n + 1) + 1 ,对数性质log(ab) = log(a) + log(b) logn + 1 = log(2n) ,[logn + 1,n]=? 5:二叉树的中序遍历序列为JGDHKBAELIMCF,后序遍历序列为JGKHDBLMIEFCA,则其前序遍历序列为? 根据后序遍历确定子树的根,后序遍历从后向前看,最后一个元素为根,和前序遍历刚好相反,从后向前看后序遍历,应该是根,右,左,根据中序遍历确定子树的左右区间。 根=A A的左子树:JGDHKB ;A的右子树:ELIMCF A的左子树的根:B ; A的右子树的根:C B的左子树:JGDHK ; B的右子树:空 ;C的左子树:ELIM ;C的右子树:F B的左子树的根:D ; C的左子树根:E D的左子树的根:G; D的右子树的根:H ; E的右子树的根:I 6已知某二叉树的前序遍历序列为5 7 4 9 6 2 1,中序遍历序列为4 7 5 6 9 1 2,则其后序遍历序列为 前序遍历找到子树的根,中序遍历的位置找到子树的左右区间。
6 7:如果一颗二叉树的前序遍历的结果是ABCD,则满足条件的不同的二叉树有( 14)种 首先这棵二叉树的高度一定在3~4层之间: 三层: A(B(C,D),()), A((),B(C,D)), A(B(C,()),D), A(B((),C),D), A(B,C(D,())), A(B,C((),D)) 四层: 如果为四层,就是单边树,每一层只有一个节点,除过根节点,其他节点都有两种选择,在上层节点的左边还是右边,所以222共8种 8:设某种二叉树有如下特点:每个结点要么是叶子结点,要么有2棵子树。假如一棵这样的二叉树中有m(m>0)个叶子结点,那么该二叉树上的结点总数为m+m+1 = 2m+1。 任意的二叉树中,度为0的节点比度为2的节点多了1个
|