nightstepper
18-05-2004, 13:08
ich verstehe den algorithmus einfügen nicht ganz:
einfügen (T,p)
1:pos = hash(p.key);
2:p.next = T[pos];
3:T[pos] = p;
ich versuche das ganze einmal zu beschreiben:
T ist die hashtabelle. p ist der wert der eingefüht wird.
1: mit hash(p.key) wird die spalte in die eingefügt werden muss berechet. dieser wert wird der variablen pos zugewiesen.
zb. p.key = 17
pos = 3
für eine beliebige hashfunktion die genau dieses ergebnis liefert.
2: hier wir p.next die werte die sich in spalte drei befinden zugewiesen.
angenommen es sind schon zwei werte gespeichert. 34 und 12. wie wird dann die zweite zeile abgearbeitet?
3: da ich die zweite zeile nicht verstehe vertehe ich die dritte schon garnicht. :mad:
wahrscheinlich ist das ganze idiotensicher aber kann mir das bitte jemand erklären!
einfügen (T,p)
1:pos = hash(p.key);
2:p.next = T[pos];
3:T[pos] = p;
ich versuche das ganze einmal zu beschreiben:
T ist die hashtabelle. p ist der wert der eingefüht wird.
1: mit hash(p.key) wird die spalte in die eingefügt werden muss berechet. dieser wert wird der variablen pos zugewiesen.
zb. p.key = 17
pos = 3
für eine beliebige hashfunktion die genau dieses ergebnis liefert.
2: hier wir p.next die werte die sich in spalte drei befinden zugewiesen.
angenommen es sind schon zwei werte gespeichert. 34 und 12. wie wird dann die zweite zeile abgearbeitet?
3: da ich die zweite zeile nicht verstehe vertehe ich die dritte schon garnicht. :mad:
wahrscheinlich ist das ganze idiotensicher aber kann mir das bitte jemand erklären!