Gute tag, ich bin dabei eine Coalesced HashMap zu programmieren. Ich habe die add funktion gemeistert und bin beim remove und get Mehtode angelangt. Die zwei zu implementierenden Methoden (das Interface gibt es mir vor) besitzen nur einen (E key) Parameter.
Meine Frage nun: Was genau wird gelöscht?
Den “Behälter” auf den key (nach der Hashfunktion) zeigt?
Oder muss ich solange durch Next bis ich den Letzten Value Wert habe? Nach dem Prinzip von Last in Last out?
‘coalesced hashing delete’ findet ja jedenfalls etwas in Suchmaschinen,
in der Kürze noch unbedarft angesprochen:
wenn man dort das Bild nimmt und ‘ofu’ löscht,
welcher Stand soll danach bestehen?
deine beiden genannten Alternativen klingen ja nicht berauschend,
weder ist irgendein Eintrag einzeln blind zu löschen, noch ausgerechnet bis ans Ende der Verkettung, zu ‘ecd’ zu gehen und dieser zu löschen,
was meinst du mit ‘Last In Last out’?
gelöscht werden soll doch wohl das, was mach auch übergibt, eben etwa ‘ofu’,
ich sehe nur die Möglichkeit, den konkreten Speicherplatz von ‘ofu’ zu finden, falls vorhanden, nicht unbedingt sofort beim Hashwert sondern in der Verlinkung,
diesen dann zu löschen und wichtig, die Verlinkung ansonsten zu retten, also von ‘qrj’ dann auf ‘glc’ zu verweisen?
schlecht wäre wenn man auf ‘ofu’ direkt mit Hash käme und nicht weiß dass noch von hinten drauf verwiesen wird, aber das ist wohl ausgeschlossen:
wenn von hinten ein Link kommt, dann steht etwas in einem Feld, was gar nicht direkt dorthin gehört,
also keine Sorge dazu