我正在编写一个程序,将机器人从 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 #),如果您的目的地在树中但不是根(# 是位置编号和 T是 L 或 R,表示您在位置 # 处左转或右转。
注意:直到昨天我才使用 Lisp,如果我看起来有点迷茫,很抱歉。