/* * heaters.h * Project * * Created by Geoffrey Foster on 09/04/08. * Copyright 2008 Geoffrey Foster. All rights reserved. * */ #ifndef __HEATERS_H #define __HEATERS_H #include #include typedef int (*heater_cmp)(const void*, const void*); typedef struct tag_heater_node { struct tag_heater_node *left; struct tag_heater_node *right; struct tag_heater_node *parent; const void *data; const void *priority; double k; } heater_node; typedef heater_node *heater_item; typedef struct { heater_node *root; heater_cmp cmp; size_t size; } heater; bool heater_create(heater *h, heater_cmp cmp); bool heater_cleanup(heater *h); bool heater_insert(heater *h, void *priority, const void *data, heater_item *hi); bool heater_find_min(heater *h, heater_item *hi); const void *heater_delete_min(heater *h); //void heater_decrease_key(heater *h); //void heater_meld(heater *h1, heater *h2, heater *h); size_t heater_size(heater *h); const void *heater_get_data(heater_item hi); #endif /* __HEATERS_H */