misc fixes

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1068 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc
2004-05-17 21:42:12 +00:00
parent e7fbb54532
commit a6f1b27c09
9 changed files with 57 additions and 17 deletions

View File

@@ -36,6 +36,7 @@ PROGRAMS= $(srcdir)/apply_macros.yap \
$(srcdir)/prandom.yap \
$(srcdir)/queues.yap \
$(srcdir)/random.yap \
$(srcdir)/rbtrees.yap \
$(srcdir)/regexp.yap \
$(srcdir)/splay.yap \
$(srcdir)/system.yap \

View File

@@ -14,6 +14,7 @@
:- module(rbtrees,
[new/1,
lookup/3,
lookupall/3,
insert/4,
delete/3]).
@@ -25,8 +26,8 @@ new(K,V,black(Nil,K,V,Nil)) :-
lookup(Key, Val, black([],_,_,[])) :- !, fail.
lookup(Key, Val, Tree) :-
arg(Tree,2,KA),
compare(Cmp,KA,Key,Tree),
arg(2,Tree,KA),
compare(Cmp,KA,Key),
lookup(Cmp,Key,Val,Tree).
lookup(<, K, V, Tree) :-
@@ -35,9 +36,27 @@ lookup(<, K, V, Tree) :-
lookup(>, K, V, Tree) :-
arg(4,Tree,NTree),
lookup(K, V, NTree).
lookup(>, K, V, Tree) :-
lookup(=, K, V, Tree) :-
arg(3,Tree,V).
lookupall(Key, Val, black([],_,_,[])) :- !, fail.
lookupall(Key, Val, Tree) :-
arg(2,Tree,KA),
compare(Cmp,KA,Key),
lookupall(Cmp,Key,Val,Tree).
lookupall(>, K, V, Tree) :-
arg(4,Tree,NTree),
lookupall(K, V, NTree).
lookupall(=, K, V, Tree) :-
arg(3,Tree,V).
lookupall(=, K, V, Tree) :-
arg(1,Tree,NTree),
lookupall(K, V, NTree).
lookupall(<, K, V, Tree) :-
arg(1,Tree,NTree),
lookupall(K, V, NTree).
%
% Tree insertion
%