14 A[i].
d->
m = -4294967296.0;
29 A[i].
d->
m = -4294967296.0;
79 bool stopFlag =
false;
88 if (
A[L].d->m >
A[R].
d->
m) { swap = L; }
else { swap = R; }
89 }
else {
if (L <
heaplimit) { swap = L; }
else {
break; } }
92 if (
A[index].d->m <
A[swap].
d->
m) {
94 A[index].
d =
A[swap].
d;
95 A[index].
d->
k = index;
102 }
else { stopFlag =
true; }
110 bool stopFlag =
false;
115 if ((P > 0) && (
A[index].d->m >
A[P].
d->
m)) {
118 A[index].
d->
k = index;
124 }
else { stopFlag =
true; }
153 for (
int i=arraysize; i<(2*
arraysize); i++) {
156 A[i].
d->
m = -4294967296.0;
176 for (
int i=heaplimit; i<(
arraysize/2); i++) {
179 A[i].
d->
m = -4294967296.0;
199 A[index].
d->
m = newData.
m;
200 A[index].
d->
i = newData.
i;
201 A[index].
d->
j = newData.
j;
202 A[index].
d->
k = index;
203 pointer =
A[index].
d;
215 double oldm = address->
m;
216 address->
m = newData.
m;
217 address->
j = newData.
j;
218 if (oldm > newData.
m) {
downsift(address->
k); }
226 double oldm = address->
m;
227 address->
m = newStored;
228 if (oldm > newStored) {
downsift(address->
k); }
238 int index = address->
k;
241 A[1].
d->
m = -4294967296.0;
248 A[index].
d->
m = -4294967296.0;
252 A[index].
d =
A[smal].
d;
254 A[index].
d->
k = index;
277 std::cout <<
A[i].
d <<
"\t["<<
A[i].
d->
k<<
"]\tdQ = "<<
A[i].
d->
m<<
"\t"<<
A[i].
d->
i<<
" -> "<<
A[i].
d->
j<<
"\n"; }
286 for (
int i=1; i<limit; i++) {
287 std::cout <<
A[i].
d <<
"\t["<<
A[i].
d->
k<<
"]\tdQ = "<<
A[i].
d->
m<<
"\t"<<
A[i].
d->
i<<
" -> "<<
A[i].
d->
j<<
"\n"; }
int upsift(int i)
Funktion um das Element von A[i] richtig in den Heap zu ordnen.
int downsift(int i)
Funktion um das Element von A[i] richtig in den Heap zu ordnen.
void updateItem(mytuple *address, mytuple newData)
Updated das Element an der angegeben Adresse mit dem uebergeben Wert.
void printHeap()
Gibt die Elemente im Heap aus.
mytuple returnMaximum()
Gibt das maximale Element im Heap zurueck. Keine Aenderungen im Heap.
int returnArraysize()
Gibt die Groesse des Wertearrays zurueck.
int parent(int i)
Gibt den Index des Elternknotens zurueck.
int k
Index des Elements im Heap.
int left(int i)
Gibt den Index des Linken Kindex zurueck.
int heapSize()
gibt die Groesse des heaps zurueck (maxheap-1).
hnode * A
Arrayspeicher des Maxheaps.
int returnHeaplimit()
Gibt den Index vom ersten ungenutzen Element zurueck.
mytuple * insertItem(const mytuple newData)
Fuegt newData in den Heap ein und gibt die Adresse davon zurueck.
bool heapIsEmpty()
True wenn der Heap leer ist, andersfalls false.
mytuple popMaximum()
Gibt das maximale Element im Heap zurueck und entfernt es aus dem Heap. Ordnet dannach den Heap neu...
void grow()
Erhoeht die Groesse des A Arrays.
bool isempty
Gibt an ob der Heap leer ist. True..ist leer, False..nicht leer.
int right(int i)
Gibt den Index des rechten Kindes zurueck.
void deleteItem(mytuple *address)
Entfernt das Element an der angegeben Adresse.
void shrink()
Verringert die Groesse des A Arrays.
int i
Zeilenindex des Elements.
double m
Abgelegter Wert/Parameter.
int arraysize
Groesse des Arrays.
void printHeapTop10()
Gibt die groessten 10 Elemente im Heap aus.
int j
Spaltenindex des Elements.
int heaplimit
Erstes unbenutzes Element im Heap.