Was ist die Verbindung zwischen dem Heap in dynamischer Speicherzuweisung und die Datenstruktur verwendet? [Duplikat]

StackOverflow https://stackoverflow.com/questions/2410683

Frage

  

Mögliche Duplizieren:
   Warum sind zwei verschiedene Konzepte sowohl als „Haufen“?

Ich habe um gegoogelt, aber kann nicht die Antwort auf diese Frage finden; Was ist die Verbindung zwischen dem Heap in dynamischer Speicherzuweisung und die Datenstruktur verwendet? Ist Speicher auf dem Heap in einer Weise organisiert, die die Struktur der Heap-Daten ähnlich ist? Wenn ja, scheint dies sehr seltsam, da Speicher holt AFAIK random access sein sollte (das heißt, O (1)), sondern von einem Haufen ein Objekt zu finden ist nicht in konstanter Zeit erfolgen.

Also, das ist nur eine überladene Bedeutung von Haufen, sozusagen, oder gibt es eine Art von Verbindung?

War es hilfreich?

Lösung

Heap ist ein Synonym für das, was der Standard ruft die Freispeicher. Im Gegensatz zu den Stapeln, die für die Funktionsaufrufe und Funktions lokale Objektspeicherung verwendet wird, wachsen Haufen in der entgegengesetzten Richtung (von oben nach unten) auf vielen Implementierungen (wie zum Stapel entgegengesetzt - die von unten nach oben wachsen). Natürlich keiner von ihnen von der Norm gefordert werden.

Die Heap-Datenstruktur, auf der anderen Seite ist völlig anders - es ist eine spezialisierte Baumstruktur mit bestimmten Eigenschaften.

Es ist möglich, einige Implementierungen die Heap-Datenstruktur für Freispeicherverwaltung verwenden, woher der Name abgeleitet worden sein. (Siehe Buddy-Speicherzuweisung .)

Andere Tipps

Nein, das Programm Haufen unterscheidet sich von dem Heap-Datenstruktur. Mit anderen Worten, keine Beziehung. Diese Frage bespricht das Programm Haufen im Detail.

Es gibt keine Beziehung, aber ich gebe den Namen verwirrend sein kann. Der Heap in Speicher ist ein Array, das die OS-Programme zuweist. Ein Haufen wird von Programmen für schnelles Nachschlagen implementiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top