1. Die Stapelstruktur verstehen Wir wissen, dass Arrays eine gängige Datenstruktur sind und Daten an jeder beliebigen Stelle im Array eingefügt und gelöscht werden können. Um bestimmte Funktionen zu erreichen, müssen wir diese Willkür jedoch manchmal einschränken. Stapel und Warteschlangen sind relativ gängige eingeschränkte Datenstrukturen. Schauen wir uns zunächst den Stapel an.
Das Strukturdiagramm sieht wie folgt aus: Ähnlich wie Stack im Leben
Als Nächstes implementieren wir gemeinsam die Kapselung der Stapelstruktur. Die von uns verwendete Methode basiert auf einem Array. 2. Kapselung der StapelstrukturErstellen Sie zunächst eine Klasse, die die Stapelstruktur wie folgt kapselt: Funktion Stack(){ } Fügen Sie darin Eigenschaften und Methoden hinzu und fügen Sie das Array über die Eigenschaftsmethoden der Klasse hinzu. Verwenden Sie dann die Prototypmethode, um häufig verwendete Operationen hinzuzufügen. Häufige Operationen an Stapeln sind:
Als nächstes werden wir sie nacheinander implementieren: Funktion Stack(){ diese.Artikel = []; // Füge oben im Stapel ein neues Element hinzu. drücken() Stack.prototype.push = Funktion(Element){ dies.items.push(element); } //Entferne das oberste Element des Stapels pop() Stack.prototype.pop = Funktion(){ gibt this.items.pop() zurück; } //Gibt das Element oben auf dem Stapel zurück, ohne Änderungen am Stapel vorzunehmen peek() Stack.prototype.peek = Funktion(){ gib diese.Elemente zurück[diese.Elemente.Länge-1]; } //Feststellen, ob der Stapel leer ist isEmpty() Stack.prototype.isEmpty = Funktion(){ wenn (this.items.length == 0) { gibt true zurück; }anders { gibt false zurück; } } //Gibt die Anzahl der Elemente im Stapel zurück size() Stack.prototype.size = Funktion(){ gib diese.Elemente.Länge zurück; } //Gibt den Inhalt der Stapelstruktur als Zeichen zurück toString() Stack.prototype.toString = Funktion(){ var str = ''; für(var i =0;i<this.items.length;i++){ str += diese.Elemente[i] + ' '; } gibt str zurück; } }
Abschließend überprüfen. Der Code lautet wie folgt: var stack = neuer Stack(); stapel.push(1); stapel.push(2); stapel.push(3); stapel.push(4); stapel.push(5); konsole.log(Stapel); console.log('Das oberste Element des entfernten Stapels ist: '+stack.pop()); console.log('Das oberste Element des Stapels ist: '+stack.peek()); console.log('Ist der Stapel leer: '+stack.isEmpty()); console.log('Die Anzahl der Elemente im Stapel ist: ' + stack.size()); console.log('Der Inhalt der Stapelstruktur ist:'); Konsole.log(stack.toString()); Die Ausgabe ist: Aufbau erfolgreich. 3. Konvertieren Sie Dezimalzahlen in BinärzahlenWie konvertiert man Dezimalzahlen in Binärzahlen? Um Dezimalzahlen in Binärzahlen umzuwandeln, können wir die Dezimalzahl durch 2 teilen, den Rest in den Stapel schieben, bis das Ergebnis 0 ist, und schließlich die Elemente nacheinander in den Stapel verschieben, um das Endergebnis zu erhalten. Wie in der folgenden Abbildung dargestellt: Der spezifische Code lautet: Funktion Stack(){ diese.Artikel = []; //In den Stapel pushen Stack.prototype.push = function(element){ dies.items.push(element); } //Aus Stack.prototype.pop = function(){ auswerfen gibt this.items.pop() zurück; } //Beurteilen, ob der Stapel leer ist Stack.prototype.isEmpty = function(){ wenn (this.items.length == 0) { gibt true zurück; }anders{ gibt false zurück; } } } Funktion decToBin(decNumber){ var stack = neuer Stapel; während(Dezzahl>0){ //Rest holen und in den Stapel legen stack.push(decNumber%2); //Neuen Divisor holen decNumber = Math.floor(decNumber/2); } //Holen Sie sich das oberste Element des Stapels var str = ''; während(!stack.isEmpty()){ str += stack.pop(); } gibt str zurück; } console.log('100 in Binärzahl umgewandelt ist: '+decToBin(100)); console.log('50 in Binärzahl konvertiert ist: '+decToBin(50)); console.log('20 in Binärcode konvertiert ist: '+decToBin(20)); console.log('34 in Binärcode konvertiert ist: '+decToBin(34)); Die Ausgabe ist: Dies ist das Ende dieses Artikels über den detaillierten Prozess der Implementierung der Stapelstruktur durch Das könnte Sie auch interessieren:
|
Vorwort: Ich bin kürzlich auf das Problem der Ins...
In diesem Artikel wird hauptsächlich die Verwendu...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort var ist eine Möglichkeit, Variablen in ES...
Tabelle erstellen und Index erstellen Tabelle tbl...
Ich glaube, dass viele Benutzer, die Websites ers...
Lösung zum Vergessen des MySQL-Passworts: [root@l...
Frage Vor kurzem bin ich auf die Anforderung gest...
Ohne weitere Umschweife komme ich gleich zum Code...
0x00 Einführung WordPress ist das beliebteste CMS...
1. Bauteile 1. Ein Formular muss Formularfelder e...
<br /> Hinweis: Alle Texte, mit Ausnahme der...
Inhaltsverzeichnis 1. Routennavigation 2. API zur...
Responsive Layoutsysteme sind in den heute gängig...
Hier finden Sie eine Einführung zum Ändern des Pa...