Heim  >  Artikel  >  Java  >  Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe)

Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe)

WBOY
WBOYnach vorne
2022-03-11 17:11:422083Durchsuche

Dieser Artikel vermittelt Ihnen das relevante Wissen über Java und stellt hauptsächlich die damit verbundenen Probleme des Stapels vor, einschließlich der Grundoperationen des Stapels, der Methoden und Eigenschaften des Stapels, der beiden Implementierungsmethoden des Stapels usw. I Ich hoffe, es wird Ihnen helfen.

Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe)

Empfohlene Studie: „Java-Lern-Tutorial

1 Das Konzept des Stapels

Der Stapel, auch Stapel genannt, ist als Datenstruktur eine Art Datenstruktur, die nur kann an einem Ende eingefügt und eingefügt werden. Spezielle lineare Tabelle für Löschvorgänge. Es handelt sich um eine lineare Tabelle mit begrenzten Operationen. Die Einschränkung besteht darin, dass Einfüge- und Löschvorgänge nur an einem Ende der Tabelle zulässig sind. Dieses Ende wird als Oberseite des Stapels bezeichnet, das andere Ende als Unterseite. Der Stapel hat First-In-Last-Out-Eigenschaften.

Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe)

2. Grundlegende Stapeloperationen

Erstellen Sie einen Stapel: Erstellen Sie vor der Verwendung des Stapels einen leeren Stapel.
Push, Push: Fügen Sie dem Stapel neue Elemente hinzu.
Pop: Löschen Sie das oberste Element des Stapels Stapel lesen
: Fragen Sie das Element oben im aktuellen Stapel ab. Ermitteln Sie die Größe des Stapels und leeren Sie den Stapel. . .
3. Stapelmethoden und -attribute

Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe)
Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe) Push bedeutet, in den Stapel zu schieben.

Pop bedeutet, aus dem Stapel herauszuspringen )
Array ist erforderlich. Definieren Sie im Voraus eine feste Länge (Anzahl der Elemente).

② Verknüpfte Liste.

Die verknüpfte Liste besteht aus kleinen Räumen, auf die jeder Raum verweist Nächster Raum. Die verknüpfte Liste ist eine nicht kontinuierliche und nicht sequentielle Speicherstruktur. Die logische Reihenfolge der Datenelemente wird durch die Zeigeradresse der verknüpften Liste realisiert enthält zwei Knoten, einer ist die Datendomäne (Speicherplatz), in der das Element gespeichert ist, und der andere ist ein Zeigerfeld, das auf die nächste Knotenadresse zeigt. Abhängig von der Ausrichtung des Zeigers kann die verknüpfte Liste unterschiedliche Strukturen bilden, z. B. eine einfach verknüpfte Liste, eine doppelt verknüpfte Liste, eine zirkulär verknüpfte Liste usw.

Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe)

5. Der Unterschied zwischen Arrays und verknüpften Listen

Array
Java-theoretische Basis - Stapel (Zusammenfassungsfreigabe) Vorteile:

1. Das Abfragen von Elementen nach Index ist schnell

2. Es ist praktisch, das Array gemäß dem Index zu durchlaufen
Nachteile:
1. Definieren Sie im Voraus eine feste Länge (Anzahl der Elemente) 2. Dies ist nicht möglich Passen Sie sich der dynamischen Zunahme und Abnahme der Daten an.

Wenn die Datenmenge zunimmt, kann es sein, dass die ursprünglich definierte Anzahl von Elementen überschritten wird, was dazu führt, dass das Array außerhalb der Grenzen liegt.
Wenn die Datenmenge abnimmt, führt dies zu einer Verschwendung von Speicher.

Verknüpfte Liste

Vorteile:

1. Es ist keine Initialisierung der Kapazität erforderlich, und Elemente können beliebig hinzugefügt oder entfernt werden. ;
2. Beim Hinzufügen oder Löschen von Elementen müssen Sie nur die Zeigerfelder der beiden Elementknoten ändern, um auf die Adresse zu verweisen sehr schnell

Nachteile:
1. Da es eine große Anzahl von Zeigerfeldern enthält, nimmt es viel Platz ein. Das Suchen nach Elementen erfordert das Durchlaufen der verknüpften Liste, was sehr zeitaufwändig ist.


Wenn Sie schnell auf Daten zugreifen möchten und nicht oft Elemente einfügen oder löschen, wählen Sie das Szenario, in dem die Menge der Array-Daten gering ist und häufige Hinzufügungen und Löschungen erforderlich sind

Wenn Sie keine hohen Anforderungen an die Effizienz haben Beim Zugriff auf Elemente wählen Sie „Verknüpfte Liste“
6.1. Speichern lokaler Variablen:

Lokale Variablen können auch in Funktionen verwendet werden, globale Variablen können jedoch nicht immer verwendet werden. Wo ist dann der geeignete Ort zum Speichern lokaler Variablen? Das heißt, bei der Verschachtelung von Funktionen sollte es keinen Konflikt geben und der Schwerpunkt sollte auf der Effizienz liegen.

6.2 Parameterübergabe

Der Zweck der Parameterübergabe besteht darin, Code wiederzuverwenden, sodass eine Methode auf mehr Situationen angewendet werden kann, ohne N Sätze ähnlicher Codes für N Situationen schreiben zu müssen. Welche Methode wird also zur Parameterübertragung verwendet? Sie können wählen:

6.3 Speichern Sie den Wert des Registers.

Wenn es einen Konflikt bei der Übertragung der Registerparameter gibt, können Sie den Wert des Registers vorübergehend in den Stapel verschieben.

6.4 Andere Funktionen.

1) Der Stapel ist der Grundlage jeder Funktionsarchitektur und implementiert die Funktion Wiederverwendung.
2) Wenn ein Problem auftritt, können Sie den Stack verwenden, um die Situation zu verstehen, in der das Problem aufgetreten ist.

3) Der Stack ist die Grundlage für den Aufbau des Multitasking-Modus des Betriebssystems.

Empfohlenes Lernen: „
Java-Tutorial

Das obige ist der detaillierte Inhalt vonJava-theoretische Basis - Stapel (Zusammenfassungsfreigabe). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen