问答题
Fibonacci树是一种特殊的二叉树,下面给出构造该树的一种算法:
procedure FibonacciTree(d: integer; Var T: binarytree)
(//d是Fibonacci树的深度
if d=0 then T:=nil
else{new(T);
if d=1 then (T^.lefptr:=nil; T^.rightptr:=nil )
else { //d>=2
FibonacciTree(d一2, T^.1eftptr);
FibonacciTree(d一1, T^.rightptr);
}
}
}
(1)画出深度为4的Fibonacci树(即用d=4调用上述算法的结果)。(7分)
(2)从你画的树中分析深度为d的Fibonacci树中结点总数和Hbonacci数的关系。
Fibonacci数定义如下:
F
n
=1, F
1
=1
F
n
=F
n-1
+F
n-2
n>1
(3)你所画出的Fibonacci树是否为平衡二叉树?若是,它是否为同样深度的平衡二叉树中结点数目最少的一种?(4分)【中国科学技术大学1998三(15分)】