: (Stapel), auch Stapel genannt, ist eine lineare Tabelle mit begrenzten Operationen. Folgen Sie dem Last-In-First-Out (LIFO)
oben im Stapel : einer linearen Liste, die Einfüge- und Löschvorgänge nur auf das Ende der Tabelle beschränkt, und
dem unteren Ende des Stapels : einer linearen Liste, die Einfüge- und Löschvorgänge einschränkt nur bis zum Kopf.
Schieben : Das Einfügen eines neuen Elements in einen Stapel wird auch als Schieben, Schieben oder Schieben bezeichnet. Dabei wird das neue Element auf das oberste Element des Stapels gelegt, wodurch es zum neuen obersten Element des Stapels
wird Stack-Element wird auch als „Popping“ oder „Popping Off the Stack“ bezeichnet. Es löscht das oberste Element des Stapels und macht seine angrenzenden Elemente zum neuen obersten Element des Stapels.
was prozessorientiert ist:
Prozessorientiert bedeutet, die Schritte zur Lösung des Problems zu analysieren und sie
dann mithilfe von Funktionen
zu implementieren. Sie müssen sie nur Schritt für Schritt ausführen und aufrufen .
- push (element ) fügt ein oder mehrere Elemente oben auf dem Stapel hinzu.
- pop () löscht das oberste Element und gibt das entfernte Element zurück.
- peek () gibt das Element oben auf dem Stapel zurück.
- isEmpty () ist Wird verwendet, um zu bestimmen, ob der Stapel leer ist.
- Mit „clear()“ werden die Elemente des Stapels gelöscht.
- „Size()“ wird verwendet, um die Anzahl der Elemente im Stapel
zurückzugeben Wie wir es implementieren
: Zuerst leihen wir uns die Array-Methode aus, um es zu implementieren. Daher müssen wir
ein leeres Array erstellen, um den Stapel zu simulieren
, um eine Klasse zu erstellen, verwenden Sie ein Array, um sie zu simulieren, und
schreiben Sie verschiedene Methoden in die Klasse,
um die Array-Methode teilweise aufzurufen.
Im Allgemeinen
besteht die Methode zur Verwendung einer Klasse zum Umschließen eines Arrays darin, die Simulation der Stapelklasse
Stack {zu realisieren
Konstruktor() { this.item = [] } push(element) { this.item.push(element) } pop() { gib this.item.pop() zurück } peek() { gib this.item[this.item.length - 1] zurück } isEmpty() { gib this.item.length === 0 zurück } klar() { this.item = [] Größe() { Gibt diese.Elementlänge zurück } } //Instanziiere die Stack-Klasse const stack = new Stack() stack.push(4) stack.push(6) console.log( stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty()) Console.log(stack.size())
Ergebnisse:
Objektorientiert denken:
Es geht darum , die Dinge, aus denen das Problem besteht, in mehrere Objekte zu zerlegen .
Das Objekt dient nicht dazu, einen bestimmten Schritt abzuschließen, sondern um
das Verhalten von etwas im Prozess der Problemlösung zu beschreiben.
Dann verwenden wir bei der Implementierung dieser Klasse Objekte für
- push (element ) fügt ein oder mehrere Elemente oben auf dem Stapel hinzu.
- pop () löscht das oberste Element und gibt das entfernte Element zurück.
- peek () gibt das Element oben auf dem Stapel zurück.
- isEmpty () ist wird verwendet, um zu bestimmen, ob der Stapel leer ist, leer ist leer.
- clear() wird verwendet, um die Elemente des Stapels zu löschen.
- size() wird verwendet, um die Anzahl der Elemente im Stapel zurückzugeben.
- toString() wird verwendet, um den Stapel im Formular zu drucken
- den
Simulationsstapel
class Stack { Konstruktor() { this.count=0 this.items = {} } push(element) { this.items[this.count]=Element this.count++ } pop() { if(this.isEmpty()){ Rückkehr undefiniert } this.count-- const result=this.items[this.count] this.items[this.count] löschen Ergebnis zurückgeben } peek() { if(this.isEmpty()){ Rückkehr undefiniert } gib this.items[this.count-1] zurück } isEmpty() { gib this.count===0 zurück } klar() { this.items={} this.count=0 } Größe() { gib this.count zurück } toString(){ if(this.isEmpty()){ Rückkehr undefiniert } let objectString=`${this.items[0]}` for(let i=1;i<this.count;i++){ objectString=`${objectString},${this.items[i]}` } ObjektString zurückgeben } } const stack = neuer Stack() stack.push(23) stack.push(34) stack.push(80) console.log( stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty()) console.log(stack.size())Wenn
console.log(stack.toString())
Objekte zum Simulieren von Stapeln verwendet, verwendet es key:value
zum Speichern von Daten. Beispielsweise verwendet this.items[this.count]=element
this.count zum Aufzeichnen in dieser Struktur
Wenn wir eineZahl
einfügen, weisen wir count als Schlüssel zu
und fügen den Wert als Wert ein. Zu diesem Zeitpunkt müssen Sie this.count++ ändern.
In Bezug auf pop() und peek() muss die toString()-Methode
zunächst feststellen, ob der Stapel leer ist.