Finish BST node removal.

This commit is contained in:
Dominik Pantůček 2023-07-07 07:55:15 +02:00
parent 915e846b01
commit 7370cea951

View file

@ -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 (<? k nk)
(let-values (((new-left-node sub-count)
(loop (bst-node-left n))))