Hashing: Programmabsturtz!
-
ich will aus eine verk. liste ein knoten via hashing löschen..leider
stürtzt das programm bei der delete eingabe ab!
leider finde ich frn fehler nicht..kann mir jemand helfen?const int M=3; struct knoten { int wert; struct knoten *next; } *H[M]; int h(int wert) { return wert%M; } void add(int wert) { struct knoten *aktuell = new knoten; aktuell->wert = wert; aktuell->next = NULL; int i = h(wert); if (H[i] == NULL) { H[i]=aktuell; } else { aktuell->next = H[i]; H[i] = aktuell; } } struct knoten * isMember(int wert) { struct knoten *aktuell; aktuell = H[h(wert)]; while (aktuell != NULL && aktuell->wert != wert) aktuell = aktuell->next; return aktuell; } void del(int wert) { struct knoten *aktuell; aktuell = isMember(wert); if (aktuell != NULL) { struct knoten *tmp = H[h(wert)]; while (tmp->next != aktuell) { tmp = tmp->next; tmp ->next = aktuell->next; delete aktuell; } } } void main() { int wert; while (true) { cout << "Integer (abort with neg. value): "; cin >> wert; if (wert<0) break; add(wert); } cout << "Integer to delete: "; cin >> wert; del(wert); }