Hallo allerseits ich versuche eine Funktion zu erstellen, die eine bestimmte Nummer aus allen Zellen in der verknüpften Liste löschen, die diese Nummer haben, aber meine Löschfunktion löscht nur die erste Zelle er bis zum Ende kommen und dann zum Haupt Rückkehr dies ist mein Code:löschen Gewisse Nummer aus verketteten Liste (rekursiv)
struct num* deleteCell(struct num* point, int numdelete)
{
struct num* tempdelete = point;
if (point == NULL) // found the tail and dont found any match to delete
{
printf("not found\n");
return NULL;
}
else if (point->number == numdelete)// found one to delete
{
tempdelete = point->pNext;
free(point);
}
else// Just keep going
{
point->pNext = deleteCell(point->pNext, numdelete);
}
return tempdelete;
}
(Punkt ist der Zeiger auf die erste Zelle, numdelete ist die Nummer, die ich löschen möchten) dank für Helfer !! !!
Alon
sind verlinkte Listen für rekursive Algorithmen kein guter Behälter. Verwenden Sie besser einen iterativen Ansatz, um einen Stapelüberlauf zu vermeiden. – Olaf
müssen Sie zu einem Element iterieren, das Sie löschen möchten. –
@Olaf das ist meine Aufgabe Ich muss diesen Algorithmus auf rekursive Weise tun – alon