Je n'arrive pas à comprendre comment supprimer un élément du BST. Ceci est mon codeSuppression d'un élément d'un BST dans le schéma
(define remove (lambda (x t)
(if (< x (car t)) (list (car t) (remove x (cadr t)) (caddr t))
(if (> x (car t)) (list (car t) (cadr t) (remove x (caddr t)))
(if (not(and (null? (cadr t)) (null? (caddr t))))
(let ((r (minimum (caddr t)))) ((remove r t) (set-car! t r)))
(list '() (cadr t) (caddr t)))))))
Le minimum renvoie la valeur minimale dans l'arborescence. Si j'essaie de supprimer un élément qui n'est pas une feuille, il passe dans une boucle infinie. Comment puis-je le réparer?
On dirait une copie de [cette question] (http://stackoverflow.com/questions/4374530/how-do-i-delete-from-a-binary-search-tree-in-lisp/4383580). –