Kettenimplementierung:
Fügen Sie Elemente in einem Abschnitt des Stapels hinzu und löschen Sie einen Knoten an der Oberseite des Stapels im Stapel und in der Größe eines Zählvariablenindikators:
Privates Linearnode -Top;
Private Int Count;
Top ---> Element 1 ----> Element 2 ---> Element 3 .........
Implementierung (mit Test Main):
LinkedStack
Paketstapel; Top of the Stack; 10; i ++) Stack.push (i); () System IS: " + stack.top.getElement ()); () {Return (size () == 0);} public void push (Objektelement) {linearnode node = new lin Earnode (Element); Pop () {if (isempty ()) {System.out.println ("Stack ist leer!"); Count-;
Run Ergebnisse:
Setzt der 0 bis 10 Stack den Stapel des Stapels für 5 aufeinanderfolgende Zeiten fort? : FALSCH
Die Größe des Stapels beträgt: 5
Das obere Element des Stapels ist: 4
Das obere Element des Stapels ist: 4
Array -Implementierung:
Der Boden des Stapels ist immer die Position von 0 im Array.
Privates Objekt [] Inhalt; Überschneidung Überschneidung
Implementierung (mit Test Main):
ArrayStack
Paketstapel; Überschneidung Überschneidung Private statische int size = 10; Index = 0; 0)} public void push (Objektelement) {// if (isEmpty ()) // expt (); } Öffentliches Objekt Pop () {if (isEmpty ()) {System.out.println ("Stack ist leer!"); das Stapel-Top-;/ * Schreiben im Buch ist einfacher: ; Drücken Sie 0 bis 24, dann für 10 aufeinanderfolgende Zeiten aus dem Stapel "); für (int i = 0; i <25; i ++) Stack.push (i); für (int i = 0; i <10; i ++) stack.pop (); : " + Stack.isempty ()); System.out.println (" Das obere Element des Stacks ist: " + stack.peek ());}
Run Ergebnisse:
Drücken Sie 0 bis 24 und dann die Größe des Stapels 10 Mal in Folge: 15
Ist der Stapel leer? : FALSCH
Das obere Element des Stapels ist: 14
Verwenden Sie die Set LinkedList, um den Stapel zu simulieren
Verfahren
Mit Java's Generics können die LinkedList die Speicherstapel verschiedener Datentypen simulieren, einschließlich Int, Double, String, Objekt usw., einige verwendete API -Schnittstellen einführen:
Geben Sie den Stapel ein
void addfirst (e e);
Holen Sie sich das oberste Element des Stapels
E GetFirst (); // Zurück zum ersten Element dieser Liste
Aus dem Stapel
E removeFirst ();
Gefährden
boolean isempty (); // den Stapel leer beurteilen
Zum Beispiel Code
Java.util.LinkedList; int data) {this.stack.addfirst (data);} public int pop () löscht NoSuchelementedException {zurück. } Statische void main (String args []) {Simulationsstack S = neuer Simulatestack (); .out.println (Daten);