Hashtabelle mit verketteten Liste

Ich habe ein Problem mit einer übung für die Schule.

Muss ich implementieren Sie eine hash-Tabelle mit dieser Struktur :

struct Book {
char * title;
char * author;
int price;
struct Book * next;
}

Also ich muss eine Funktion erstellen initTable() die meine hash-Tabelle ist eine Tabelle der struct Buch der 1000 Elemente. Also meine Funktion ist :

struct Book* initTable(){
struct Book *tab = malloc(sizeof(struct Book) * 1000);
return tab;
}

Beachten Sie, dass die Funktion soll das erste element von meinem Tisch.
Aber ich weiß nicht, ob diese syntax korrekt ist.

Also meine Fragen sind :

  1. Ist, dass eine richtige syntax ?
  2. Wie kann ich navigieren in der Tabelle ? Zum Beispiel, wenn ich will, zu gehen, um die Zelle 50 für meine Tabelle, wie kann ich tun?

Dann, wenn es zu einer Kollision in meinem hash-Tabelle, die ich zum erstellen einer verknüpften Liste, wo ich meine Elemente in Konflikt. Aber die einzelnen Zellen meiner Tabelle sind eine Struktur, und nicht ein Zeiger von dieser Struktur, so verstehe ich nicht, wie kann ich mein link-Elemente.

Sind Sie sicher, dass Ihre Tabelle sein soll, eine Tabelle der Strukturen, und nicht die Tabelle von Zeigern auf Strukturen?
für die Klärung sind Sie wahrscheinlich erstellen Sie ein array[1000] von verketteten Listen. Diese Listen enthalten nur ein einziges element, aber auf die hash-Konflikt enthalten mehr
Eine Sache, die Ihnen fehlt, ist die Initialisierung der Tabelle Artikel. Man könnte hinzufügen memset Anruf nach malloc oder ersetzen malloc mit calloc (die Nullen der Speicher reserviert).
is that a correct syntax? - gut, warum fragst du? warum nicht Sie versuchen, kompilieren? wenn es kompiliert, ist die syntax korrekt ist.
Ich meine, ist, dass der gute Weg, um eine hash-Tabelle von struct Buch

InformationsquelleAutor | 2014-06-22

Schreibe einen Kommentar