alist-to-treap
This commit is contained in:
parent
ed2b5fed0e
commit
8cf886461e
|
@ -19,6 +19,7 @@
|
||||||
treap-keys
|
treap-keys
|
||||||
treap-values
|
treap-values
|
||||||
treap-fold
|
treap-fold
|
||||||
|
alist-to-treap
|
||||||
treap-to-alist
|
treap-to-alist
|
||||||
treap-has-key?
|
treap-has-key?
|
||||||
|
|
||||||
|
@ -196,6 +197,10 @@
|
||||||
[(L) acc]
|
[(L) acc]
|
||||||
[(N k v _ left right) (walk left (f (walk right acc) k v))])))
|
[(N k v _ left right) (walk left (f (walk right acc) k v))])))
|
||||||
|
|
||||||
|
(define (alist-to-treap order pairs)
|
||||||
|
(for/fold [(t (treap-empty order))] [(p (in-list pairs))]
|
||||||
|
(treap-insert t (car p) (cdr p))))
|
||||||
|
|
||||||
(define (treap-to-alist t)
|
(define (treap-to-alist t)
|
||||||
(let walk ((n (treap-root t)) (acc '()))
|
(let walk ((n (treap-root t)) (acc '()))
|
||||||
(match n
|
(match n
|
||||||
|
|
Loading…
Reference in New Issue