gft_heap.h
Go to the documentation of this file.
1 #ifndef _GFT_HEAP_H_
2 #define _GFT_HEAP_H_
3 
4 #include "gft_common.h"
6 
7 
8 namespace gft{
9  namespace Heap{
10 
11  typedef struct _heap {
12  float *cost;
13  char *color;
14  int *pixel;
15  int *pos;
16  int last;
17  int n;
18  char removal_policy; /* 0 is MINVALUE and 1 is MAXVALUE */
19  } Heap;
20 
21 
22  /* Auxiliary Functions */
23 
24 #define HEAP_DAD(i) ((i - 1) / 2)
25 #define HEAP_LEFTSON(i) (2 * i + 1)
26 #define HEAP_RIGHTSON(i) (2 * i + 2)
27 
28  void SetRemovalPolicy(Heap *H, char policy);
29  char IsFull(Heap *H);
30  char IsEmpty(Heap *H);
31  Heap *Create(int n, float *cost);
32  void Destroy(Heap **H);
33  char Insert(Heap *H, int pixel);
34  char Remove(Heap *H, int *pixel);
35  void Update(Heap *H, int p, float value);
36  void GoUp(Heap *H, int i);
37  void GoDown(Heap *H, int i);
38  void Reset(Heap *H);
39 
40  } //end Heap namespace
41 } //end gft namespace
42 
43 #endif
44 
char * color
Definition: gft_heap.h:13
int n
Definition: gft_heap.h:17
int * pos
Definition: gft_heap.h:15
int * pixel
Definition: gft_heap.h:14
char Remove(Heap *H, int *pixel)
Definition: gft_heap.cpp:138
Definition: gft_heap.h:11
float * cost
Definition: gft_heap.h:12
Heap * Create(int n, float *cost)
Definition: gft_heap.cpp:83
void GoUp(Heap *H, int i)
Definition: gft_heap.cpp:12
char Insert(Heap *H, int pixel)
Definition: gft_heap.cpp:126
void SetRemovalPolicy(Heap *H, char policy)
Definition: gft_heap.cpp:6
void Destroy(Heap **H)
Definition: gft_heap.cpp:115
Header file for common definitions and function prototypes.
int last
Definition: gft_heap.h:16
struct gft::Heap::_heap Heap
char removal_policy
Definition: gft_heap.h:18
void GoDown(Heap *H, int i)
Definition: gft_heap.cpp:37
void Reset(Heap *H)
Definition: gft_heap.cpp:165
void Update(Heap *H, int p, float value)
Definition: gft_heap.cpp:154
char IsFull(Heap *H)
Definition: gft_heap.cpp:68
char IsEmpty(Heap *H)
Definition: gft_heap.cpp:75