【SICP练习】93 练习2.66

练习2.66

这道题相当于二叉树在实际工程中的一个运用,我们依旧要用到前面所学到的三个过程:entry, left-branch, right-branch。这三者的作用分别是取出结点、左分支、右分支。而根据题目要求,这里还需要一个获取键值的key。当然了,就像书中上文所展示的那样,key并不需要我们写出来,这里就用到了按愿望思维。

(define (lookup given-key tree-of-records)
   (if (null? tree-of-records)
      #f
       (let ((entry-key (key (entry tree-of-records))))
         (cond ((= given-key entry-key)
                 (entry tree-of-records))
               ((> given-key entry-key)
                 (lookup given-key (right-branch tree-of-records)))
                ((< given-key entry-key)
                  (lookup given-key (left-branch tree-of-records)))))))
时间: 2024-10-11 10:31:46

【SICP练习】93 练习2.66的相关文章

结合tcpdump命令对traceroute深入分析

昨天突然被问到traceroute的原理,一时竟也说不出来,有些命令平时虽然经常在用,但实际原理确并不了解,趁这次机会就来梳理一下. traceroute:是网络诊断中,用来分析IP包经过那些路由的命令. 学前知识: IP包中有个字段TTL,这个是最大跳转次数的字段,每经过一个路由器,值会-1,当值为0的时候,这个包就会被路由器丢弃,并返回ICMP-超时包给请求主机. 实现原理: 1.traceroute首先发出三个UDP包(发出三个主要是为了统计,这里可以不用太在意),其TTL的字段为1,目的

css3颜色名称及对应颜色值

颜色名称也称为颜色关键字,像我们熟悉的black表示黑色,white表示白色,blue表示蓝色等.实际上,在CSS的颜色定义中,总共有147种颜色关键字,所有者147种颜色名字均取自X Windows 系统,X 颜色名,所以即使这147个颜色名看上去不是很标准,支持也是非常不错的. 需要注意的是,在IE下,关于灰色,其中的字母”e”是不认的,它只认gray中的”a”而不认grey中的”e”,所以IE浏览器下,CSS3中的颜色名实际上只有140个,而不是147个. 其他就不多说了,关于这147个颜

SVG实现描边动画

说起SVG,我是恨它又爱它,恨它是因为刚开始接触的时候自己傻B地想用代码去写它,其实在web上我们用它做交互也只是用了几个常用的特性而已,其他的标签知道这么一回事就成了,其实说白了它就是一种图片格式,你得去画它,网站上最长用的SVG交互效果就是描边动画了,今天就来实现它 先上效果图: 思路:要实现这种动画,我们要使用的是SVG的路径path标签,其中然后配合两个属性:stroke-dasharray和stroke-dashoffset,至于用什么方式实现动画效果就八仙过海了,我这里使用的是css

Java中的数组和方法

3.1 数组的定义和使用 数组(Array)是用来存储一组相同数据类型数据的集合.数组中的每个数据称为一个元素(element),数组可以分为一维数组,二维数组和多维数组.我们 主要讲解一维数组和二维数组. 3.1.1一维数组的声明数组变量 Java中的数组必须先声明然后再使用,Java中声明数组的方式如下: datatype[] arrayRefVar; 或者 datatype arrayRefVar[]; 例如: double[] array; 或者 double array[]; 说明:我

佛山传奇sf高防服务器,无视一切攻击

√全国最值得信任的IDC服务提供商,为您提供多种资源选择√真正提供7×24小时机房现场售后服务√不限次数的安装系统.快速重启服务器,为您提供基础安全设置服务器带宽保证IP地址防火墙月付半年付年付1. 为您提供7*24小时现场技术支持.5分钟之内提供重启响应.紧急状况处理.系统重装等服务2. 本公司还和电信签订托管协议服务与质量保证,无需预约24小时进入机房进行维护 3. 免费为用户而特别提供的最专业的服务,并且提供各种服务器软件配置指导分析4. 网络中心将为您提供24小时监控,随时为您提供流量统

usaco-3.2-butter-passed

这个题目,放在周未,卡了两天,恶补了两天dijkstra算法,各种书都查阅了,还是刘汝佳提供的dijkstra能完美解决,一次通过. 并且,将算法进行了封装,这个,有点强: /* ID: qq104801 LANG: C++ TASK: butter */ #include <iostream> #include <fstream> #include <cstring> #include <vector> #include <queue> usi

DM(LVM)研究

什么是dm? Device mapper 什么是PE(physicalextent) 每一个物理卷被划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元.PE的大小是可配置的,默认为4MB. dmsetup命令: dmsetup manages logical devices that use the device-mapper driver.  Devices are created by loading a table thatspeci

usaco-4.1-ditch-passed

这个挖坑项目,果然是有坑的. /* ID: qq104801 LANG: C++ TASK: ditch */ #include <iostream> #include <fstream> #include <cstring> #include <vector> #include <queue> #include <stack> #include <algorithm> using namespace std; const

C++学习研究之static

1.先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容: char a = 'A'; // global variable void msg() { printf("Hello\n"); }下面是main.c的内容: int main(void) { extern char a; // extern