committing trees changes (again? git is a little strange...)
parent
42690e8af0
commit
63ead46a47
|
@ -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
|
||||
|
|
|
@ -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 )
|
||||
<tree> over set-delegate ;
|
||||
: <avl-tree> ( -- tree )
|
||||
avl-tree construct-empty <tree> over set-delegate ;
|
||||
|
||||
TUPLE: avl-node balance ;
|
||||
|
||||
C: avl-node ( value key -- node )
|
||||
>r <node> r> tuck set-delegate
|
||||
0 over set-avl-node-balance ;
|
||||
: <avl-node> ( value key -- node )
|
||||
<node> 0 avl-node construct-boa tuck set-delegate ;
|
||||
|
||||
M: avl-tree create-node ( value key tree -- node ) drop <avl-node> ;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: trees test kernel sequences ;
|
||||
USING: trees trees.bst tools.test kernel sequences ;
|
||||
IN: temporary
|
||||
|
||||
: test-tree ( -- tree )
|
||||
|
|
|
@ -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 ) <tree> over set-delegate ;
|
||||
: <bst> ( -- tree ) bst construct-empty <tree> over set-delegate ;
|
||||
|
||||
TUPLE: bst-node ;
|
||||
|
||||
C: bst-node ( value key -- node ) >r <node> r> tuck set-delegate ;
|
||||
: <bst-node> ( value key -- node )
|
||||
<node> bst-node construct-empty tuck set-delegate ;
|
||||
|
||||
M: bst create-node ( value key tree -- node ) drop <bst-node> ;
|
||||
|
||||
|
|
|
@ -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 ) 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 ;
|
||||
: <node> ( value key -- node )
|
||||
swap f f node construct-boa ;
|
||||
|
||||
SYMBOL: current-side
|
||||
|
||||
|
|
Loading…
Reference in New Issue