zeiger auf zeiger und heap
-
Könnte jemand mir erklären, was könnten die Datenelemente dieser Struktur bedeuten?
struct heap {
EDGE **min, **max; /* minimum and maximum buckets of heap */
EDGE *bucket[1]; /* buckets of edges */
}Edge ist eine Kante-Struktur. Es handelt sich hier um ein Graph-Programm.
Es gibt Knoten und Kanten. Mit dem Heap wollte man hier die Kanten gemäss eines Distanz ordnen.
Meine erste Frage ist: ich verstehe nicht, warum man hat hier Zeiger auf Zeiger benutzt und was bedeuten hier "bucket". Alles was ich von bucket weiss, ist:
dass sie eine Art "Queue" mit einem Schlüssel.Meine zweite Frage ist: wann soll man den Zeiger auf Zeiger benutzen?
Ich bedanke mich für jede Hilfe.
-
Wie du wahrscheinlich schon mitbekommen hast wird in C aus einem array ein pointer. Dh aus einem array von pointern wird dann ein pointer auf einen pointer.
dh wenn du eine declaration wieEdge ** max;
hast dan ist das soviel wie ein 2-dimemsionales array von Edge.
Du kannst max dan ganz leicht in 2 dimensionen dereferenzieren. z.bEdge e = max[0][5];
Kurt