Das EOP für Schulkinder. - Seite 15

 
Алексей Тарабанов:

Leute, ich bin ein Rückwärtsgewandter, aber es gibt einen Stapel (wenn der erste gespeicherte Wert zuletzt abgerufen wird) und eine Warteschlange (wenn der erste Wert zuerst eintrifft, zuerst ausläuft).

Was ist ein Stapel?

Wenn Sie ein Objekt auf dem Stapel löschen, wird automatisch die FILO-Regel (first in, last out) ausgeführt.
Beim Löschen von Objekten auf dem Heap wird diese Regel vom Programmierer kontrolliert.
Ein Heap ist eine Warteschlange mit einer Priorität. Es stellt sich heraus, dass der Heap eine Warteschlange ist.

 
Roman:

Beim Löschen eines Objekts auf dem Stapel wird automatisch die FILO-Regel (first in, second out) ausgeführt.
Beim Entfernen von Objekten auf dem Heap wird diese Regel vom Programmierer kontrolliert.
Der Heap ist eine Warteschlange mit Priorität. Es stellt sich heraus, dass der Heap eine Warteschlange ist.

der Abend hört auf, träge zu sein : weitere Versionen ? :-)

 
Roman:

Beim Löschen eines Objekts auf dem Stapel wird automatisch die FILO-Regel (first in, second out) ausgeführt.
Beim Löschen von Objekten auf dem Heap wird diese Regel vom Programmierer kontrolliert.
Der Heap ist eine Warteschlange mit Priorität. Es stellt sich heraus, dass der Heap eine Warteschlange ist.

Das ist knifflig.

 
Алексей Тарабанов:

Leute, ich bin ein Rückwärtsgewandter, aber es gibt einen Stapel (wenn der erste gespeicherte Wert zuletzt abgerufen wird) und eine Warteschlange (wenn der erste Wert zuerst eintrifft, zuerst ausläuft).

Was ist ein Stapel?

Ein Haufen von diesen...

Eine Variante ist die dynamische Objekterstellung über new, die zweite Variante ist die automatische Objekterstellung (ohne new).

 
Maxim Kuznetsov:

der Abend hört auf, träge zu sein : weitere Versionen ? :-)

Im Allgemeinen ist ein binärer Heap eine Datenstruktur vom Typ eines abstrakten Baumes.
Dieser Typ wird als Prioritätswarteschlange bezeichnet.

 
Алексей Тарабанов:

Weiser.

Ein Haufen ist nur ein Haufen. Sie können sich das als den gesamten Speicher vorstellen, den Sie noch nicht belegt haben.
Sie können daraus Teile entnehmen, die Ihren Bedürfnissen entsprechen (Sie können ein Objekt oder ein skalares Array oder einfach so platzieren).
Und man kann sie in beliebiger Reihenfolge nehmen/abrufen, das ist ein Haufen.

Ein Schüler, der erklärt, dass die Reihenfolge der Zuteilung/Freigabe auf dem Stapel wichtig ist, soll sich umbringen, wenn die Wand für das zweite Jahr stehen bleibt.

 
Roman:

Im Allgemeinen ist ein binärer Heap eine Datenstruktur in Form eines Baums eines abstrakten Typs.
Dieser Typ wird als Prioritätswarteschlange bezeichnet.

Ich würde mich sechs Monate lang hinlegen.

 
Roman:

Im Allgemeinen ist ein binärer Heap eine Datenstruktur in Form eines Baums eines abstrakten Typs.
Dieser Typ wird als Prioritätswarteschlange bezeichnet.

wie der Heap physisch markiert und organisiert ist, sollte der Anwendungsprogrammierer nicht zögern.

PS/ und es ist nicht plötzlich eine Prioritätswarteschlange

 
Gut gemacht... Bei dem Thema für Schüler haben Sie begonnen, auf professioneller Ebene zu diskutieren. Und damit der Schüler alles versteht, wurde ihm gesagt: "Denk selbst nach. Was immer Sie tun wollen, tun Sie es selbst"... Aber ich habe sie gebeten, mir zu erklären, worauf ich achten muss, wenn ich mich an die Klasse wende. Welcher Option könnte Vorrang vor den anderen eingeräumt werden?
 
Alexey Viktorov:
Gut gemacht... Beim Schülerthema fangen Sie an, auf einer professionellen Ebene zu diskutieren. Und damit der Schüler alles versteht, wurde ihm gesagt: "Denk selbst nach. Was immer Sie tun wollen, tun Sie es selbst"... Aber ich habe sie gebeten, mir zu erklären, worauf ich achten muss, wenn ich mich an die Klasse wende. Welcher Option könnte Vorrang vor den anderen eingeräumt werden?

Das kann so aussehen: wenn man genau weiß, was man für ein oder zwei Objekte der gleichen Klasse braucht, kann man Variablen mit dem Klassentyp verwenden - so macht es in kodobase der Schlagzeuger - er definiert Variablen mit dem Klassentyp auf globaler Ebene, und greift über diese Variablen auf Klassenmethoden zu. Und wenn Sie bei der Ausführung des Programms Objekte über new erstellen, dann haben Sie keine andere Wahl, als Zeiger zu verwenden - das Objekt wird "irgendwo im Speicher" erstellt, aber Sie können nicht mit einer Variablen darauf zugreifen - Sie haben es nicht definiert und es gibt nichts, worauf Sie zugreifen können, aber Sie haben einen Zeiger auf dieses Objekt - Sie haben ihn beim Erstellen eines neuen Objekts definiert - also greifen Sie darauf zu und manipulieren es mit dieser Variablen.

Grund der Beschwerde: