[英]Binary tree to list in post-order in racket
嗨,我正在尝试将一棵二叉树转移到一个列表中,但以后置顺序穿过它。
(define (postorden arbol)
(if (null? arbol)
('()) (append (append (postorden (car (cdr arbol)))
(postorden (car (cddr arbol))))
(list (car arbol)))))
但是我得到这个错误:
CDR:预期违反合同:对? 给定:'null
但例如以这棵树为例:'(((1 2)((7 10)((2 4)null null))((6 6)((10 10)null null)null))
执行了cdr并得到了:((((7 10)((2 4)null null))((6 8)((10 13)null nul)null))然后我把车开到了这个结果:'(( 7 10)(((2 4)null null))如果是一对。 所以我不明白什么是错的。
先感谢您。
一个if
表达式具有for (if e0 e1 e2)
,其中e0,e1,和,e2是表达式。 在您的程序中,您具有:
(if e0
('() ...)
e2)
这意味着如果e0为true,则将评估('() ...)
。
这里'()
是空列表,也称为null
。
表达式('() ...)
将尝试呼叫'()
与的结果...
,从而给出错误。
修正此错误,希望您的其他错误消失了-如果没有告诉我们您的问题并再次询问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.