hausers@0: /* hausers@0: * Copyright 2009 OpenSourceStewardshipFoundation.org hausers@0: * Licensed under GNU General Public License version 2 hausers@0: * hausers@0: * Author: hausers@cs.tu-berlin.de hausers@0: */ hausers@0: hausers@0: #ifndef _PRIORITY_QUEUE_H hausers@0: #define _PRIORITY_QUEUE_H hausers@0: hausers@0: #include hausers@0: Me@2: #include "../../VMS_Implementations/VMS_impl/VMS_primitive_data_types.h" Me@2: hausers@0: typedef struct _PrioQueueStruc PrioQueueStruc; hausers@0: typedef struct _heapNode heapNode; hausers@0: hausers@0: struct _heapNode { hausers@0: int key; hausers@0: void *val; hausers@0: }; hausers@0: hausers@0: struct _PrioQueueStruc { hausers@0: int size; hausers@0: int maxSize; hausers@0: hausers@0: heapNode *data; hausers@0: }; hausers@0: Me@4: PrioQueueStruc* makePrioQ(); hausers@0: void* getFirstPrioQ (PrioQueueStruc *Q); hausers@0: void* popPrioQ (PrioQueueStruc *Q); hausers@0: bool insertPrioQ (void *val, int key, PrioQueueStruc *Q); hausers@0: void freePrioQ (PrioQueueStruc *Q); hausers@0: hausers@0: #ifdef DEBUG hausers@0: void printPrioQ (PrioQueueStruc *Q); hausers@0: void swap (PrioQueueStruc *Q, int a, int b); hausers@0: #endif hausers@0: hausers@0: hausers@0: #endif hausers@0: