加载中
【SICP练习】60 练习2.30

 练习2.30 如果这道题感觉有点难度的话,可以回过头来看看75页定义的两个scale-tree。我的定义如下: (define (square-tree tree) (cond ((null? tree) ‘()) ((not (pair? tree)) (squa...

2015/09/08 21:47
1
【SICP练习】58 练习2.28

 练习2.28 这道题是要我们找出树的所有树叶,参考第73页下面的count-leaves,当遍历这个树的时候也会有这三种情况:元素为空,元素不成对,以及元素成对。根据这个关系可以写出fringe如下...

2015/09/08 21:50
3
【SICP练习】61 练习2.31-2.32

 练习2.31 我想说我已经越来越喜欢抽象了,将上一题中的map版本的square-tree抽象的方法是添加一个参数f,f是一个函数,因此将square替换成f即可。如下。 (define (map-tree f tree) (m...

2015/09/08 21:46
6
【SICP练习】90 练习2.63

练习2.63 这两段代码的区别在于第二段用了迭代,相信可以大大减少计算时间。那么还是先来测试第一小题。需要的代码大家先敲进去。然后来定义图2-16中的三棵树了。 (define tree-1 (make-tre...

【SICP练习】57 练习2.27

 练习2.27 又是修改程序的题目,要求我们写出的deep-reverse函数要将表中的元素也反转过来,这其中应该要用到递归来实现吧。 (define (deep-reverse tree) (cond ((null? tree) ‘()) (...

2015/09/08 21:46
2
【SICP练习】91 练习2.64

练习2.64 一开始list->tree会调用partial-tree,而后者会将每次传入的表分成两部分,然后组合成一个平衡树。中间运用了迭代的技巧,而这是让众多树枝产生的源泉。如果我们对前面的表’(1 3 ...

【SICP练习】95 练习2.68

练习2.68 先要导入练习2.67中的sample-tree。这道题要求我们写出能够根据给定的树产生出给定符号的二进制位表的函数encode-symbol,这个函数还要能够在遇到未在树中出现的符号时报错。这个函...

【SICP练习】92 练习2.65

练习2.65 最后一道题了,来个总结倒是很不错。要完成两个函数,我们就要用到前面所学,首先用练习2.63中的函数将树变成表,这样有利于后续的处理,而根据前面的习题,用tree->list-2会更加快...

2015/09/08 21:47
0
【SICP练习】96 练习2.69

练习2.69 如题目中所说,传入给successive-merge的参数是一个有序的集合。而这个函数将通过不断的归并得到最终的一个元素。如果传入的集合为0,也就是说返回的表应该是空表。如果传入的集合为...

【算法】6 比较排序之外学习新的线性时间排序

回顾比较排序 相信阅读过前面5篇博文的童鞋们已经发现了“在排序的最终结果中,各元素的次序依赖于它们之间的比较”。于是乎,这类排序算法被统称为”比较排序“。 比较排序是通过一个单一且...

图论算法 有图有代码 万字总结 向前辈致敬

图的定义 背景知识 看到这篇博客相信一开始映入读者眼帘的就是下面这幅图了,这就是传说中的七桥问题(哥尼斯堡桥问题)。在哥尼斯堡,普雷格尔河环绕着奈佛夫岛(图中的A岛)。这条河将陆地...

图论算法 有图有代码 万字总结 向前辈致敬

图的定义 背景知识 看到这篇博客相信一开始映入读者眼帘的就是下面这幅图了,这就是传说中的七桥问题(哥尼斯堡桥问题)。在哥尼斯堡,普雷格尔河环绕着奈佛夫岛(图中的A岛)。这条河将陆地...

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部