我正在編寫一個程序,指導機器人從BST到目標編號。該程序有兩個輸入參數,一個作爲整數的目標,以及一個表示機器人可以遵循的所有路徑的地圖。在Lisp中通過BST搜索
即:(機器人64「(53(()(64()())))))
凡64是目的地和53(()(64()())))是BST。
我需要編寫該方法的幫助。這是我最初的工作。
(define (robot goal map)
(let ((x (car map)))
(define empty? '())
(display x)
(cond (empty? x)
(robot goal (cadr map)))
(cond ((= goal x)) (display x))
(cond (< x goal)
(robot goal (cadr map)))
(cond (> x goal)
(robot goal (caddr map)))
;(display "NULL")
)
)
它應該通過BST進行搜索,如果路徑中找到它打印(發現:#T#的...#T#),如果你的目標是樹而不是根( #是一個位置編號,T是L或R,表示您在位置#處左轉或右轉。
注意:我從來沒有在昨天使用過Lisp,所以很遺憾,如果我看起來有點丟失。
我把一切都想通了。謝謝您的幫助! – helloimbarbara 2013-04-24 18:08:56