suchen
HeimWeb-Frontendjs-TutorialDetaillierte Erläuterung der Liste der Javascript-Datenstrukturen und Algorithmen_Javascript-Kenntnisse

Vorwort: Im täglichen Leben verwenden Menschen oft Listen, um beim Einkaufen alle Dinge zu kaufen, bevor wir gehen die Liste, die wir verwenden. Oder als wir in der Schule waren, listete die Schule nach jeder Prüfung die Ranglisten und Zeugnisse der zehn besten Schüler auf, die in der Prüfung abschnitten, und so weiter . Wir verwenden auch Listen in unseren Computern. Wo sind Listen also für den Einsatz geeignet? Wo ist es nicht einsetzbar?

Geeignet für die Verwendung: Wenn die Liste nicht viele Elemente enthält, können Sie die Liste verwenden, da die Effizienz beim Suchen oder Sortieren der Elemente in der Liste sehr hoch ist. Im Gegenteil: Wenn sehr viele Elemente vorhanden sind die Liste, dann sind Listen nicht mehr geeignet.

1: Abstrakte Datentypdefinition der Liste

Um den abstrakten Datentyp der Liste zu entwerfen, müssen wir die Definition der Liste angeben, einschließlich der Attribute, die die Liste haben soll, welche Operationen an der Liste ausgeführt werden sollen usw.

Eine Liste ist ein geordneter Datensatz. Die Datenelemente in jeder Liste werden Elemente genannt. In JavaScript können Elemente in einer Liste jeden Datentyp haben. Es gibt keine vorherige Vereinbarung darüber, wie viele Elemente in einer Liste gespeichert werden können. Allerdings ist die Anzahl der Elemente durch den tatsächlich genutzten Programmspeicher begrenzt.

Jetzt wollen wir eine Liste entwerfen, dann können wir darüber nachdenken, eine Liste zu implementieren und welche Attribute und Methoden sie enthalten soll. Natürlich basieren meine folgenden Entwürfe auf der Demo im Buch „Javascript Data Structure and Algorithm“. Bisher können wir lernen, wie wir unsere eigene abstrakte Klasse als Referenz entwerfen, wenn wir in Zukunft Programme schreiben. Das Wichtigste für uns, jetzt die Demos im Buch zu studieren, ist, ihre Designideen und das Schreiben von Code zu lernen. Sie haben die folgenden Attribute:

1. listSize (Attribut): Verwenden Sie eine listSize-Variable, um die Anzahl der Elemente in der Liste zu speichern.
2. pos (Attribut): Die aktuelle Position der Liste, der Index des Elements.
3. dataStore (Attribut): Initialisieren Sie ein leeres Array, um die Anzahl der Elemente zu speichern. Wenn wir ein bestimmtes Element in der Liste erhalten möchten, können wir das obige pos-Attribut verwenden, z. B. dataStore[pos];

Alle Methoden werden in der folgenden Liste erläutert und nicht einzeln vorgestellt.

2: So implementieren Sie die Listenklasse

Gemäß dem oben definierten abstrakten Datentyp der Liste können wir die folgende List-Klasse über den Konstruktor-Prototypmodus wie folgt implementieren.

Code kopieren Der Code lautet wie folgt:

Funktion List() {
// Anzahl der Elemente in der Liste
This.listSize = 0;

// Was ist die aktuelle Position der Liste
This.pos = 0;

// Initialisiere ein leeres Array, um Listenelemente zu speichern
This.dataStore = [];

}

List.prototype = {
 
//Element am Ende der Liste hinzufügen
anhängen: Funktion(Element) {
      var self = this;
           self.dataStore[this.listSize] = element;
},

// Elemente aus der Liste entfernen
Entfernen: Funktion(Element) {
      var self = this;
      var curIndex = self.find(element);
If(curIndex > -1) {
                 self.dataStore.splice(curIndex,1);
​​​​​​–self.listSize;
             return true;
}
         return false;
},

// Element in der Liste finden und Index zurückgeben
Suchen: Funktion(Element) {
      var self = this;
for(var i = 0,dataLen = self.dataStore.length; i If(self.dataStore[i] == element) {
                   return i;
            }
}
         return -1;
},
 
// Gibt die Anzahl der Elemente in der Liste zurück
Länge: function() {
          return this.listSize;
},

// Elemente in der Liste anzeigen
toString: function(){
          return this.dataStore;
},

/*
* Fügen Sie ein Element nach dem angegebenen Element
ein * @param Element aktuelles Element
* @param elementAfter Fügt das aktuelle Element nach diesem Element
ein */
​ einfügen: function(element,elementAfter){
      var self = this;
        var insertPos = self.find(elementAfter);
If(insertPos > -1) {
                 self.dataStore.splice(insertPos 1,0,element);
                self.listSize;
             return true;
}
         return false;
},
 
// Alle Elemente in der Liste löschen
Klar: function() {
          delete this.dataStore;
This.dataStore = [];
This.listSize = this.pos = 0;
},
// Bestimmen Sie, ob das angegebene Element in der Liste
enthalten ist enthält: Funktion(Element) {
      var self = this;
for(var i = 0,ilen = self.dataStore.length; i If(self.dataStore[i] == element) {
                   return true;
            }
}
         return false;
},
// Verschiebe das aktuelle Element in der Liste an die erste Position
Vorderseite: function(){
This.pos = 0;
},
// Verschiebe das aktuelle Element in der Liste an die letzte Position
Ende: function(){
This.pos = this.listSize - 1;
},
// Aktuelle Position um eine Position nach hinten verschieben
Zurück: function(){
If(this.pos > 0) {
​​​​​​–this.pos;
}
},
// Aktuelle Position um eine Position nach vorne verschieben
Als nächstes: function(){
If(this.pos This.pos;
}
},
// Gibt die aktuelle Position der Liste zurück
CurPos: function(){
         return this.pos;
},
//Verschieben Sie die aktuelle Position an die angegebene Position
MoveTo: Funktion(n) {
This.pos = n;
},
// Das Element an der aktuellen Position zurückgeben
GetElement:function(){
          return this.dataStore[this.pos];
}
};

Wie oben: Implementieren Sie eine Listenklasse, einschließlich so vieler Methoden wie oben. Natürlich können wir auch einige andere Methoden erweitern, um die Implementierung der Listenklasse zu bereichern.

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Python gegen JavaScript: Eine vergleichende Analyse für EntwicklerPython gegen JavaScript: Eine vergleichende Analyse für EntwicklerMay 09, 2025 am 12:22 AM

Der Hauptunterschied zwischen Python und JavaScript sind die Typ -System- und Anwendungsszenarien. 1. Python verwendet dynamische Typen, die für wissenschaftliche Computer- und Datenanalysen geeignet sind. 2. JavaScript nimmt schwache Typen an und wird in Front-End- und Full-Stack-Entwicklung weit verbreitet. Die beiden haben ihre eigenen Vorteile bei der asynchronen Programmierung und Leistungsoptimierung und sollten bei der Auswahl gemäß den Projektanforderungen entschieden werden.

Python vs. JavaScript: Auswählen des richtigen Tools für den JobPython vs. JavaScript: Auswählen des richtigen Tools für den JobMay 08, 2025 am 12:10 AM

Ob die Auswahl von Python oder JavaScript vom Projekttyp abhängt: 1) Wählen Sie Python für Datenwissenschafts- und Automatisierungsaufgaben aus; 2) Wählen Sie JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung. Python ist für seine leistungsstarke Bibliothek in der Datenverarbeitung und -automatisierung bevorzugt, während JavaScript für seine Vorteile in Bezug auf Webinteraktion und Full-Stack-Entwicklung unverzichtbar ist.

Python und JavaScript: Verständnis der Stärken der einzelnenPython und JavaScript: Verständnis der Stärken der einzelnenMay 06, 2025 am 12:15 AM

Python und JavaScript haben jeweils ihre eigenen Vorteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1. Python ist leicht zu erlernen, mit prägnanter Syntax, die für Datenwissenschaft und Back-End-Entwicklung geeignet ist, aber eine langsame Ausführungsgeschwindigkeit hat. 2. JavaScript ist überall in der Front-End-Entwicklung und verfügt über starke asynchrone Programmierfunktionen. Node.js macht es für die Entwicklung der Vollstapel geeignet, die Syntax kann jedoch komplex und fehleranfällig sein.

JavaScripts Kern: Ist es auf C oder C aufgebaut?JavaScripts Kern: Ist es auf C oder C aufgebaut?May 05, 2025 am 12:07 AM

JavaScriptisnotbuiltoncorc; Es ist angehört, dass sich JavaScriptWasdedeSthatrunsonGineoFtencninc.

JavaScript-Anwendungen: Von Front-End bis Back-EndJavaScript-Anwendungen: Von Front-End bis Back-EndMay 04, 2025 am 12:12 AM

JavaScript kann für die Entwicklung von Front-End- und Back-End-Entwicklung verwendet werden. Das Front-End verbessert die Benutzererfahrung durch DOM-Operationen, und die Back-End-Serveraufgaben über node.js. 1. Beispiel für Front-End: Ändern Sie den Inhalt des Webseitentextes. 2. Backend Beispiel: Erstellen Sie einen Node.js -Server.

Python vs. JavaScript: Welche Sprache sollten Sie lernen?Python vs. JavaScript: Welche Sprache sollten Sie lernen?May 03, 2025 am 12:10 AM

Die Auswahl von Python oder JavaScript sollte auf Karriereentwicklung, Lernkurve und Ökosystem beruhen: 1) Karriereentwicklung: Python ist für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet, während JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung geeignet ist. 2) Lernkurve: Die Python -Syntax ist prägnant und für Anfänger geeignet; Die JavaScript -Syntax ist flexibel. 3) Ökosystem: Python hat reichhaltige wissenschaftliche Computerbibliotheken und JavaScript hat ein leistungsstarkes Front-End-Framework.

JavaScript -Frameworks: Stromversorgung moderner WebentwicklungJavaScript -Frameworks: Stromversorgung moderner WebentwicklungMay 02, 2025 am 12:04 AM

Die Kraft des JavaScript -Frameworks liegt in der Vereinfachung der Entwicklung, der Verbesserung der Benutzererfahrung und der Anwendungsleistung. Betrachten Sie bei der Auswahl eines Frameworks: 1. Projektgröße und Komplexität, 2. Teamerfahrung, 3. Ökosystem und Community -Unterstützung.

Die Beziehung zwischen JavaScript, C und BrowsernDie Beziehung zwischen JavaScript, C und BrowsernMay 01, 2025 am 12:06 AM

Einführung Ich weiß, dass Sie es vielleicht seltsam finden. Was genau muss JavaScript, C und Browser tun? Sie scheinen nicht miteinander verbunden zu sein, aber tatsächlich spielen sie eine sehr wichtige Rolle in der modernen Webentwicklung. Heute werden wir die enge Verbindung zwischen diesen drei diskutieren. In diesem Artikel erfahren Sie, wie JavaScript im Browser ausgeführt wird, die Rolle von C in der Browser -Engine und wie sie zusammenarbeiten, um das Rendern und die Interaktion von Webseiten voranzutreiben. Wir alle kennen die Beziehung zwischen JavaScript und Browser. JavaScript ist die Kernsprache der Front-End-Entwicklung. Es läuft direkt im Browser und macht Webseiten lebhaft und interessant. Haben Sie sich jemals gefragt, warum Javascr

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.