diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-12-18 17:38:59 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-12-18 17:38:59 -0800 |
commit | c1c205100d246a39c9b92a5d1b2296a59783d7d4 (patch) | |
tree | fca7bba1f0198b0de9c2802d8069daf2b4b29782 /tests/010 | |
parent | 8248110871d18e9ceed422076de5e36bf212e127 (diff) | |
download | txr-c1c205100d246a39c9b92a5d1b2296a59783d7d4.tar.gz txr-c1c205100d246a39c9b92a5d1b2296a59783d7d4.tar.bz2 txr-c1c205100d246a39c9b92a5d1b2296a59783d7d4.zip |
tree: new functions for priority queue operation.
* tree.c (tree_min_node, tree_min, tree_del_min_node,
tree_del_min): New functions.
(tree_init): tree-min-node, tree-min, tree-del-min-node,
tree-del-min: New intrinsics registered.
* tree.h (tree_min_node, tree_min, tree_del_min_node,
tree_del_min): Declared.
* txr.1: Documented.
* tests/010/tree.tl: New tests.
* stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'tests/010')
-rw-r--r-- | tests/010/tree.tl | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/010/tree.tl b/tests/010/tree.tl index 79bab793..56d04fa9 100644 --- a/tests/010/tree.tl +++ b/tests/010/tree.tl @@ -226,3 +226,33 @@ (test (tree-count tr) 2) (tree-insert tr 1 t) (test (tree-count tr) 3)) + +(mtest + (tree-min-node (tree)) nil + (tree-min-node (tree '(1))) #N(1 nil nil) + (tree-min-node (tree '(1 2 3))) #N(1 nil nil)) + +(mtest + (tree-min (tree)) nil + (tree-min (tree '(1))) 1 + (tree-min (tree '(1 2 3))) 1) + +(let ((tr (tree '(1 2 3 4 5 6 7 8 9 10)))) + (mtest + (tree-count tr) 10 + (tree-del-min tr) 1 + (tree-del-min tr) 2 + (tree-del-min tr) 3 + (tree-count tr) 7 + (tree-del-min tr) 4 + (tree-count tr) 6 + (tree-del-min tr) 5 + (tree-del-min tr) 6 + (tree-del-min tr) 7 + (tree-del-min tr) 8 + (tree-count tr) 2 + (tree-del-min tr) 9 + (tree-count tr) 1 + (tree-del-min tr) 10 + (tree-count tr) 0 + (tree-del-min tr) nil)) |