From 63ead46a47831b10c8e1d4d076d9f291ce9b8f1c Mon Sep 17 00:00:00 2001 From: Alex Chapman Date: Sun, 30 Sep 2007 15:40:36 +1000 Subject: [PATCH] committing trees changes (again? git is a little strange...) --- extra/trees/avl-tree/avl-tree-tests.factor | 2 +- extra/trees/avl-tree/avl-tree.factor | 14 +++++++------- extra/trees/bst/bst-tests.factor | 2 +- extra/trees/bst/bst.factor | 9 +++++---- extra/trees/trees.factor | 10 ++++------ 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/extra/trees/avl-tree/avl-tree-tests.factor b/extra/trees/avl-tree/avl-tree-tests.factor index 5116146865..5790bc46d8 100644 --- a/extra/trees/avl-tree/avl-tree-tests.factor +++ b/extra/trees/avl-tree/avl-tree-tests.factor @@ -1,4 +1,4 @@ -USING: kernel test trees math sequences ; +USING: kernel tools.test trees trees.avl-tree math random sequences ; IN: temporary [ "key1" 0 "key2" 0 ] [ T{ avl-node T{ node f "key1" f f T{ avl-node T{ node f "key2" } 1 } } 2 } [ single-rotate ] go-left [ node-left dup node-key swap avl-node-balance ] keep dup node-key swap avl-node-balance ] unit-test diff --git a/extra/trees/avl-tree/avl-tree.factor b/extra/trees/avl-tree/avl-tree.factor index 5392f9e869..3f3cd1f7c5 100644 --- a/extra/trees/avl-tree/avl-tree.factor +++ b/extra/trees/avl-tree/avl-tree.factor @@ -1,18 +1,18 @@ ! Copyright (C) 2007 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: kernel generic math namespaces io sequences ; -IN: trees +USING: combinators kernel generic math math.functions math.parser namespaces io +sequences trees ; +IN: trees.avl-tree TUPLE: avl-tree ; -C: avl-tree ( -- tree ) - over set-delegate ; +: ( -- tree ) + avl-tree construct-empty over set-delegate ; TUPLE: avl-node balance ; -C: avl-node ( value key -- node ) - >r r> tuck set-delegate - 0 over set-avl-node-balance ; +: ( value key -- node ) + 0 avl-node construct-boa tuck set-delegate ; M: avl-tree create-node ( value key tree -- node ) drop ; diff --git a/extra/trees/bst/bst-tests.factor b/extra/trees/bst/bst-tests.factor index c691a187cd..09761cec96 100644 --- a/extra/trees/bst/bst-tests.factor +++ b/extra/trees/bst/bst-tests.factor @@ -1,4 +1,4 @@ -USING: trees test kernel sequences ; +USING: trees trees.bst tools.test kernel sequences ; IN: temporary : test-tree ( -- tree ) diff --git a/extra/trees/bst/bst.factor b/extra/trees/bst/bst.factor index 8abf50190f..9b2aca4c9d 100644 --- a/extra/trees/bst/bst.factor +++ b/extra/trees/bst/bst.factor @@ -1,15 +1,16 @@ ! Copyright (C) 2007 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: kernel generic math ; -IN: trees +USING: kernel generic math trees ; +IN: trees.bst TUPLE: bst ; -C: bst ( -- tree ) over set-delegate ; +: ( -- tree ) bst construct-empty over set-delegate ; TUPLE: bst-node ; -C: bst-node ( value key -- node ) >r r> tuck set-delegate ; +: ( value key -- node ) + bst-node construct-empty tuck set-delegate ; M: bst create-node ( value key tree -- node ) drop ; diff --git a/extra/trees/trees.factor b/extra/trees/trees.factor index cb7aa57f2e..d90215c0cd 100644 --- a/extra/trees/trees.factor +++ b/extra/trees/trees.factor @@ -1,18 +1,16 @@ ! Copyright (C) 2007 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: kernel generic math sequences arrays io namespaces kernel-internals ; +USING: kernel generic math math.parser sequences arrays io namespaces namespaces.private random layouts ; IN: trees TUPLE: tree root ; -C: tree ( -- tree ) ; +: ( -- tree ) tree construct-empty ; TUPLE: node key value left right ; -C: node ( value key -- node ) - [ set-node-key ] keep - [ set-node-value ] keep - f over 2dup set-node-left set-node-right ; +: ( value key -- node ) + swap f f node construct-boa ; SYMBOL: current-side