fix library heap
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@280 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
		@@ -6586,6 +6586,12 @@ stable, that is, if you insert several pairs with the same @var{Key} it
 | 
			
		||||
is not defined which of them will come out first, and it is possible for
 | 
			
		||||
any of them to come out first depending on the  history of the heap.
 | 
			
		||||
 | 
			
		||||
@item empty_heap(?@var{Heap})
 | 
			
		||||
@findex empty_heap/1
 | 
			
		||||
@syindex        empty_heap/1
 | 
			
		||||
@cnindex        empty_heap/1
 | 
			
		||||
Succeeds if @var{Heap} is an empty heap.
 | 
			
		||||
 | 
			
		||||
@item get_from_heap(+@var{Heap},-@var{key},-@var{Datum},-@var{Heap})
 | 
			
		||||
@findex get_from_heap/4
 | 
			
		||||
@syindex        get_from_heap/4
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,7 @@
 | 
			
		||||
:- module(heaps,[
 | 
			
		||||
	add_to_heap/4,		%   Heap x Key x Datum -> Heap
 | 
			
		||||
	get_from_heap/4,	%   Heap -> Key x Datum x Heap
 | 
			
		||||
	empty_heap/1,            %   Heap
 | 
			
		||||
	heap_size/2,		%   Heap -> Size
 | 
			
		||||
	heap_to_list/2,		%   Heap -> List
 | 
			
		||||
	list_to_heap/2,		%   List -> Heap
 | 
			
		||||
@@ -95,7 +96,7 @@ add_to_heap(t(M,[H|T],OldTree), Key, Datum, t(N,T,NewTree)) :-
 | 
			
		||||
add_to_heap(1, Key, Datum, _, t(Key,Datum,t,t)) :- !.
 | 
			
		||||
add_to_heap(N, Key, Datum, t(K1,D1,L1,R1), t(K2,D2,L2,R2)) :-
 | 
			
		||||
	E is N mod 2,
 | 
			
		||||
	M is N/2,
 | 
			
		||||
	M is N//2,
 | 
			
		||||
    %   M > 0,		%  only called from list_to_heap/4,add_to_heap/4
 | 
			
		||||
	sort2(Key, Datum, K1, D1, K2, D2, K3, D3),
 | 
			
		||||
	add_to_heap(E, M, K3, D3, L1, R1, L2, R2).
 | 
			
		||||
@@ -227,3 +228,6 @@ min_of_heap(t(Ka,Da,_,_), t(Kb,Db,_,_), Kb, Db) :-
 | 
			
		||||
min_of_heap(t(Ka,Da,_,_), _, Ka, Da).
 | 
			
		||||
min_of_heap(t, t(Kb,Db,_,_), Kb, Db).
 | 
			
		||||
 | 
			
		||||
empty_heap(t(0,[],t)).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user