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 wie

    Edge ** max;
    

    hast dan ist das soviel wie ein 2-dimemsionales array von Edge.
    Du kannst max dan ganz leicht in 2 dimensionen dereferenzieren. z.b

    Edge e = max[0][5];
    

    Kurt


Anmelden zum Antworten