我正在嘗試使用RACKET/DR編寫二叉樹的inorder遍歷算法。球拍二叉樹序列遍歷球拍
(define (print-records node number)
(cond
[(not (empty? node-left))(print-records (node-left node) number)]
*Do This before moving to next IF clause*
[(not (empty? node-right))(print-records(node-right node) number)]
))
我試圖按照下面的算法
InOrder(node)
if node is null return
InOrder(node.left)
Print(node)
InOrder(node.Right)
我的問題是,通過COND我可以執行一個表達式,它會跳過休息。我嘗試在兩個表達式之一下添加兩個表達式,例如((a)(b))。我也嘗試做一個幫手程序,但是這也不起作用。
它與* *打印功能的問題。它預計有一個表達式,但你提供了2個額外的(在我認爲的條件之後) – Achilles
@Achilles正如我上面所說的那樣:這只是一個例子。我不知道你應該使用什麼打印功能,用實際代碼替換那一行。請重新閱讀我的答案,我編輯它以使其更清晰。 –
在這一行中,我基本上想調用一個將輸出打印到用戶的函數(它在選擇要打印的內容之前對「數字」和節點值進行比較。) – Achilles