Ich arbeite an einer Hash-Tabelle/Datenstruktur Übung, aber verstehe es nicht ganz gut. Jede Daten muss eine Instanz der Liste 'List' sein und mit der Hash-Funktion muss ich Schlüssel/Wert-Paare zur richtigen Liste hinzufügen und die Elemente basierend auf ihrem Schlüssel zurückgeben. Als das, was ich bisher versucht habe funktioniert nicht, jede Hilfe oder Erklärung, warum, was ich bis jetzt nicht arbeite, würde sehr geschätzt werden! Vielen Dank!Datenstruktur - Wie implementiert man Hashtabellen (inklusive Assoziationslisten) in Javascript?
function List() {
this.head=null;
}
function ListN (key, value, next) {
this.key = key;
this.value = value;
this.next = next;
}
List.prototype.set = function (key, value) {
var newNode=new ListN(key, value, this.head);
this.head=newNode;
};
List.prototype.get = function (key) {
var node = this.head;
while (node) {
if (node.key === key) {
return node.value;
}
node = node.next;
}
};
smallList = new List();
function HashT() {
this.data = Array(30);
}
HashT.prototype.set = function (key, value) {
var index=hash(key);
if (!this.data[index]) {
this.data[index]=new List();
}
this.data[index].set({key:key, value:value});
};
HashT.prototype.get = function (key) {
var index=hash(key);
return this.data[index];
};
Nur vorsichtig sein ul Niemand gibt den Schlüssel 'NaN' ein –
In jeder nicht-dummen ECMAScript-Implementierung ist die zugrunde liegende Datenstruktur eines Objekts ein Hash. Verwenden Sie einfach ein einfaches Objekt. Oder eine Karte, wenn die Schlüssel keine Zeichenfolgen sind. – Oriol
@Oriol Ich denke, der Punkt der Übung ist zu lernen, wie Hash-Tabellen implementiert werden. Ein Objekt dafür zu benutzen, wäre so, als würde man jemandem beibringen, wie man ein Vogelhaus baut, indem man ihm sagt, dass er in eine Zoohandlung gehen und eine kaufen soll. – Barmar