#ifndef _GHEAP_H
#define _GHEAP_H

/* #include "malloc_dbg.h" */

typedef struct gheap          *gheap_t;

typedef int    gheap_cmp_t     ( void *,void *);


gheap_t        gheap_new       ( int          size);

void           gheap_reset     ( gheap_t      h );

void           gheap_clear     ( gheap_t      h );

int            gheap_is_empty  ( gheap_t      h );

int            gheap_add       ( gheap_t      h,
                                 int          i,
                                 int          w );

int            gheap_remove    ( gheap_t      h,
                                 int          n ); 


int            gheap_get       ( gheap_t      h,
                                 int         *min);

int            gheap_relabel   ( gheap_t      h,
                                 int          n,
                                 int          w );

int            gheap_weight    ( gheap_t      h,
                                 int          n);


# endif /* _GHEAP_H */
