/* IIheap.h */
#include "../cfiles.h"
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------
IIheap -- heap with integer ids, integer values and a map from
each integer value to a heap location
size -- present size of the heap
maxsize -- maximum size of the heap
heapLoc -- heap location of each id, size maxsize
keys -- object key of each location in the heap, size maxsize
values -- object value of each location in the heap, size maxsize
created -- 95sep30, cca
------------------------------------------------------------------
*/
typedef struct _IIheap IIheap ;
struct _IIheap {
int size ;
int maxsize ;
int *heapLoc ;
int *keys ;
int *values ;
} ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
--- methods found in basics.c ------------------------------------------
------------------------------------------------------------------------
*/
/*
-----------------------------------------------------
create and return a new instance of the IIheap object
created -- 95sep30, cca
-----------------------------------------------------
*/
IIheap *
IIheap_new (
void
) ;
/*
-------------------------------------------
set the default fields for an IIheap object
created -- 95sep30, cca
-------------------------------------------
*/
void
IIheap_setDefaultFields (
IIheap *heap
) ;
/*
-----------------------
clear the data fields
created -- 95sep30, cca
-----------------------
*/
void
IIheap_clearData (
IIheap *heap
) ;
/*
-----------------------
free the IIheap object
created -- 95sep30, cca
-----------------------
*/
void
IIheap_free (
IIheap *heap
) ;
/*
--------------------------------
initializer,
set heap maximum size to maxsize
and allocate the arrays
created -- 95sep30, cca
--------------------------------
*/
void
IIheap_init (
IIheap *heap,
int maxsize
) ;
/*
------------------------------------------------
fill pkey with the key and pvalue with the value
of the minimum (key, value) pair in the heap
created -- 95sep30, cca
------------------------------------------------
*/
void
IIheap_root (
IIheap *heap,
int *pkey,
int *pvalue
) ;
/*
------------------------------------------
insert the (key, value) pair into the heap
created -- 95sep30, cca
------------------------------------------
*/
void
IIheap_insert (
IIheap *heap,
int key,
int value
) ;
/*
----------------------------
remove (key,*) from the heap
created -- 95sep30, cca
----------------------------
*/
void
IIheap_remove (
IIheap *heap,
int key
) ;
/*
-----------------------------------------------
purpose -- to write the IIheap object to a file
created -- 95sep30, cca
-----------------------------------------------
*/
void
IIheap_print (
IIheap *heap,
FILE *fp
) ;
/*
----------------------------------------------
return the number of bytes taken by the object
created -- 95sep30, cca
----------------------------------------------
*/
int
IIheap_sizeOf (
IIheap *heap
) ;
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1