00001
00010 #ifndef MINPQ_H
00011 #define MINPQ_H
00012
00013 #include <stdlib.h>
00014
00015
00016
00017
00018
00019 #define MINPQ_INIT_NALLOCD 512
00020
00021
00022
00024 struct pq_node
00025 {
00026 void* data;
00027 int key;
00028 };
00029
00030
00032 struct min_pq
00033 {
00034 struct pq_node* pq_array;
00035 int nallocd;
00036 int n;
00037 };
00038
00039
00040
00041
00045 extern struct min_pq* minpq_init();
00046
00047
00057 extern int minpq_insert( struct min_pq* min_pq, void* data, int key );
00058
00059
00069 extern void* minpq_get_min( struct min_pq* min_pq );
00070
00071
00081 extern void* minpq_extract_min( struct min_pq* min_pq );
00082
00083
00089 extern void minpq_release( struct min_pq** min_pq );
00090
00091
00092 #endif