Ich habe Probleme beim Löschen eines Knotens aus einer verknüpften Liste durch Eingabe der Telefonnummer des Datensatzes. Dies ist der Code, der dies tun soll:Löschen eines Knotens aus einer verknüpften Liste, nachdem er gefunden wurde
typedef struct record
{
char name[20];
char surname[20];
char telephone[20];
}Record;
typedef struct node
{
Record data;
struct node *next;
}Node;
Node *head = NULL;
void delete() {
Node *n = head;
Node* previous = NULL;
Node *next = n;
. . . (Hier schrieb ich den Code die Nummer (gespeichert in Telnummer [20]) und finden Sie den Eintrag mit der Nummer
while (n != NULL) {
if (&n->data.telephone == telNumber) {
if (previous == NULL) {
n = n->next;
free(head);
}
else {
previous->next = n->next;
free(n);
n = previous->next;
}
}
else {
previous = n;
n = n->next;
}
}
printf("You have successfully deleted the telephone record");
Der Rekord noch bleibt eingeben
Das hat einen Teil des Problems gelöst, danke. Beim Anzeigen der Datensätze ist der Datensatz jedoch immer noch vorhanden. Vielleicht muss ich etwas zurückgeben? – Simon