[英]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.