【SICP练习】91 练习2.64

练习2.64

一开始list->tree会调用partial-tree,而后者会将每次传入的表分成两部分,然后组合成一个平衡树。中间运用了迭代的技巧,而这是让众多树枝产生的源泉。如果我们对前面的表’(1 3 5 7 9 11)做计算,返回的结果将会是:
(5 (1 () (3 () () ) ) (9 (7 () () ) (11 () () ) ) )
其中的空表则表示的左、右没有子树。

画出产生的树我就不再这里列出了,最终结果和图2-16中的最后一个类似,但有区别:将图中的1换成3,然后在1的左子树上为空表,右子树则为3。
而b小题中的复杂度,每次遇到一个节点,该函数都会用一次make-tree来构造,后者的复杂度是1,因此对于有n个结点的树来说,这个函数的复杂度就是n。



感谢访问,希望对您有所帮助。 欢迎关注或收藏、评论或点赞。


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


版权声明:本文为 NoMasp柯于旺 原创文章,如需转载请联系本人。

原文地址:https://www.cnblogs.com/NoMasp/p/4786128.html