SICP 习题 (2.7) 解题总结 : 定义区间数据结构
2016-02-01 18:46
507 查看
SICP 习题 2.7 開始属于扩展练习,能够考虑不做,对后面的学习没什么影响。只是,假设上面的使用过程表示序对,还有丘奇计数你都能够理解的话,完毕这些扩展练习事实上没什么问题。
习题2.7是要求我们协助Allysa完毕interval的定义。
Allysa定义了以下的过程来创建一个区间(interval),当中a是起点(就是较小的部分),而b是终点(就是较大部分)。
题目要求我们实现lower-bound过程和upper-bound过程,用于获取一个区间的起点和终点。
既然起点和终点是使用cons函数连接在一起的,获取起点和终点的函数就非常easy啦,通过car和cdr获取即可了:
值得注意的是,像这样简单的构建复合数据的方式在本书后面的章节中不断出现,变成了一个常规的数据组织手段,所以大家还是能够多留意一下这一系列扩展练习,加强对复合数据的理解。
习题2.7是要求我们协助Allysa完毕interval的定义。
Allysa定义了以下的过程来创建一个区间(interval),当中a是起点(就是较小的部分),而b是终点(就是较大部分)。
(define (make-interval a b) (cons a b))
题目要求我们实现lower-bound过程和upper-bound过程,用于获取一个区间的起点和终点。
既然起点和终点是使用cons函数连接在一起的,获取起点和终点的函数就非常easy啦,通过car和cdr获取即可了:
(define (lower-bound x) (car x)) (define (upper-bound x) (cdr x))
值得注意的是,像这样简单的构建复合数据的方式在本书后面的章节中不断出现,变成了一个常规的数据组织手段,所以大家还是能够多留意一下这一系列扩展练习,加强对复合数据的理解。
相关文章推荐
- 数据结构与算法——二叉搜索树的操作集(C语言)
- 数据结构——树
- 【数据结构学习笔记】——根据中缀表达式构建二叉树并输出
- [数据结构与算法分析] 单链表基本操作的实现
- 数据结构《17》---- 自己主动补齐之《二》----Ternary Search Tree
- 数据结构图文解析之:数组、单链表、双链表介绍及C++模板实现
- 基本概念和基础知识
- linux0.11相关进程数据结构 GDT,LDT,GDTR,LDTR
- 数据结构之堆排序
- 数据结构——采用分离链接解决冲突问题的散列表
- 数据结构——平衡二叉搜索树(AvlTree)的实现
- 数据结构——二叉搜索树(BinarySearchTree)的实现
- 数据结构——LinkedQueue的实现
- 数据结构——ArrayStack和LinkedStack的实现
- 数据结构——SimpleArrayList和SimpleLinkedList的实现
- 数据结构——SimpleList的实现
- 数据结构与算法概念
- 数据结构与算法——先序输出叶结点(C语言)
- 数据结构与算法——二分查找(C语言)
- 数据结构(寒假小结)--3.3串