스키마의 이진 검색 트리에서 노드를 삭제하려고하는데 코드의 일부를 제거하는 데 문제가 있습니다. 스키마에서 새 트리를 만들지 않고 노드 값을 삭제하려면 어떻게해야합니까? 값 오른쪽 하위 트리 또는 노드의 왼쪽 서브 트리 중 하나가 새 값으로 현재 위치에서 변경 될 수 있음 : 의미 -스키마에서 노드 삭제
(define (delete-node v T)
(cond ((null? T) '())
((< v (value T))
(delete-node v (left T)))
((> v (value T))
(delete-node v (right T)))
(else
(cond ((and (null? (right T))(not (null? (left T)))) '())
;promote the (left T) to the node
;repeat
((and (null? (left T))(not (null? (right T)))) '())
;promote the (right T) to the node
;repeat
이 코드가 필요한 경우 새 트리를 만드는 것에 반대하지 않습니다. 어떻게 작동 하는지를 볼 수 없었습니다. –
샘플 트리를 구성하는 방법을 보여줍니다. –