From 7370cea951d8ecc5d75fe68a39a78b195865e798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Fri, 7 Jul 2023 07:55:15 +0200 Subject: [PATCH] Finish BST node removal. --- src/util-bst.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/util-bst.scm b/src/util-bst.scm index e85b99b..10948d6 100644 --- a/src/util-bst.scm +++ b/src/util-bst.scm @@ -182,7 +182,18 @@ (if n (let ((nk (bst-node-key n))) (if (EQ? nk k) - #f ;; ... from line 212 in util-dict-bst + (values (if (bst-node-left n) + (if (bst-node-right n) + (let aloop ((an (bst-node-right n))) + (if an + (set-bst-node-left an + (aloop (bst-node-left an))) + (bst-node-left n))) + (bst-node-left n)) + (if (bst-node-right n) + (bst-node-right n) + #f)) + 1) (if (