首页 > 解决方案 > 方案框和指针循环列表

问题描述

我试图通过使用框和指针方法绘制它来了解编写此代码时发生的情况,但不能完全理解它。有谁能帮忙吗?

(define bar (list 'a 'b 'c 'd 'e))
(set-cdr! (cdddr bar) (cdr bar))

我的想法:

在此处输入图像描述

另外我不知道如何开始为下面的代码绘制图表,我看不到(汽车)的点和框需要在哪里。

(define bah (list 'bring 'a 'towel))
(set-car! bah (cdr bah)) 

标签: scheme

解决方案


这是最初的情况:

在此处输入图像描述

这是最后的情况:

在此处输入图像描述

如果您尝试 print bah,它将打印为一个三元素列表,其第一个元素是一个二元素列表:

((a towel) a towel)

但实际上这两个结构是共享的,例如,如果你这样做:

(set-car! (cddr bah) 'handkerchief)

bah将打印为:

((a handkerchief) a handkerchief)

推荐阅读