RACKET/DR을 사용하여 이진 트리에 대한 inorder traversal 알고리즘을 작성하려고합니다. 라켓이진 트리 inorder traversal Racket
(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