0
Ich habe hier den Code aus Skiena Anleitung:K-ten kleinstes Element größer oder gleich x in einem min Haufen
int heap_compare(priority_queue *q, int i, int count, int x)
{
if ((count <= 0) || (i > q->n)) return(count);
if (q->q[i] < x) {
count = heap_compare(q, pq_young_child(i), count-1, x);
count = heap_compare(q, pq_young_child(i)+1, count, x);
}
return(count);
}
Ich verstehe nicht, warum die Zählung nicht für das rechte Kind dekrementiert werden des Knotens?
Weder Datenstruktur noch die Frage ist nicht klar. Was ist das ursprüngliche Problem, das dieser Code versucht zu lösen? Welche Datenstruktur wird im Code verwendet? Die Frage sollte in sich geschlossen sein. Z.B. pq_young_child !? –