summaryrefslogtreecommitdiff
path: root/src/spheres_poly/heap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/spheres_poly/heap.h')
-rw-r--r--src/spheres_poly/heap.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/spheres_poly/heap.h b/src/spheres_poly/heap.h
new file mode 100644
index 0000000..91180e3
--- /dev/null
+++ b/src/spheres_poly/heap.h
@@ -0,0 +1,42 @@
+//---------------------------------------------------------------------------
+// Event heap maker
+//---------------------------------------------------------------------------
+
+#ifndef HEAP_H
+#define HEAP_H
+
+#include "event.h"
+#include "sphere.h"
+
+class heap {
+
+ public:
+
+ // constructor and destructor
+ heap(int maxsize);
+ heap(const heap &h);
+ ~heap();
+
+ // variables
+ int maxsize; // max allowed number of events
+ int N; // current number of events
+ int *a;
+ sphere *s;
+ int *index; // array of indices for each sphere
+ //event minevent;
+
+
+ // functions which operate on a binary heap
+
+ void upheap(int k);
+ void downheap(int k);
+ void insert(int i);
+ void replace(int i);
+ int search(int j);
+ void change(int i);
+ int extractmax();
+ void print();
+ void checkindex();
+
+};
+#endif