00001 
#ifndef _QUEUE_H_
00002 
#define _QUEUE_H_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
typedef struct
00010 
{
00011         
int* array;
00012         
int size;
00013         
int tail;
00014         
int head;
00015 } Queue;
00016 
00017 
void  createIntQueue(Queue* Q, 
int  size);
00018 
void destroyIntQueue(Queue* Q);
00019 
void    initIntQueue(Queue* Q);
00020 
short   pushIntQueue(Queue* Q, 
int  elem);
00021 
short    popIntQueue(Queue* Q, 
int* elem);
00022 
00023 
typedef struct
00024 
{
00025         
Peak2i* array;
00026         
int size;
00027         
int tail;
00028         
int head;
00029 } Peak2iQueue;
00030 
00031 
void  Peak2iQueue_create (Peak2iQueue* Q, 
int  size);
00032 
void  Peak2iQueue_destroy(Peak2iQueue* Q);
00033 
void  Peak2iQueue_init(Peak2iQueue* Q);
00034 
int   Peak2iQueue_push(Peak2iQueue* Q, 
Peak2i  elem);
00035 
int   Peak2iQueue_pop (Peak2iQueue* Q, 
Peak2i* elem);
00036 
void  Peak2iQueue_fprint(FILE* fp, Peak2iQueue* peaks);
00037 
00038 
00039 
void  fprintIntQueue(FILE* fp, Queue* Q);
00040 
00041 
00042 
00043 
00044 
#endif
00045