Durchlaufen und Anzeigen Einer Verketteten Liste
Nachdem wir gelernt haben, wie man Knoten erstellt und verbindet, müssen wir überprüfen, ob eine solche Liste korrekt funktioniert!
Dazu schreiben wir eine einfache Funktion, die die gesamte Liste ausgibt.
Die Funktion erhält einen Zeiger auf den Speicherbereich, in dem der Kopf (erste) Knoten der Liste gespeichert ist.
void printList(struct Node* head) {}
Anschließend wird ein temporärer Knoten current erstellt, mit dem wir die gesamte Liste durchlaufen. Der Inhalt des aktuellen Knotens entspricht dem Inhalt des aktuellen Listenknotens.
struct Node* current = head;
Zum Durchlaufen der Liste verwenden wir die while(){}-Schleife mit der notwendigen Bedingung, nämlich bis ein Knoten gefunden wird, dessen next-Feld NULL ist.
Der temp (temporäre) Knoten übernimmt die Rolle eines Pufferknotens. Er wird benötigt, um den Inhalt des aktuellen Knotens vorübergehend zu speichern (und zu löschen). Wenn wir den aktuellen Knoten sofort löschen, verlieren wir die Verbindung zum nächsten Knoten, was bedeutet, dass der Zugriff auf die Liste verloren geht.
while (current != NULL) { }
printf("\n");
Innerhalb der Schleife geben wir den Inhalt des data-Feldes des aktuellen Knotens aus und ändern das next-Feld, um zum nächsten Knoten zu wechseln.
printf("%d ", current->data);
current = current->next;
Sobald ein Knoten gefunden wird, dessen next-Feld gleich NULL ist, stoppt die Schleife die Anzeige der Inhalte der Knoten und die Funktion endet.
Swipe to start coding
Implementierung einer einfachen einfach verketteten Liste mit dynamischer Speicherzuweisung. Die Aufgabe besteht darin, die Funktionen printList und freeList zu vervollständigen.
-
Implementierung einer Funktion
printListmit einem einzelnen Parameterstruct Node* head.- Innerhalb von
printListeine Variablecurrentdeklarieren und mitheadinitialisieren. - Eine
while-Schleife verwenden, um so lange zu iterieren, wiecurrentnichtNULList. - In jeder Iteration das Feld
datavoncurrentausgeben undcurrentauf das nächste Element setzen. - Nach der Schleife ein Newline-Zeichen ausgeben, um die Ausgabe zu trennen.
- Innerhalb von
-
Innerhalb von
freeListeine Variablecurrentdeklarieren und mitheadinitialisieren.- Eine
while-Schleife verwenden, um so lange zu iterieren, wiecurrentnichtNULList. - Innerhalb der Schleife
currentin einer temporären Variabletempspeichern. currentauf das nächste Element setzen.- Den für
tempreservierten Speicher freigeben.
- Eine
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you show me the complete function code?
How does this function handle an empty list?
Can you explain what happens if the list has only one node?
Großartig!
Completion Rate verbessert auf 4.35
Durchlaufen und Anzeigen Einer Verketteten Liste
Swipe um das Menü anzuzeigen
Nachdem wir gelernt haben, wie man Knoten erstellt und verbindet, müssen wir überprüfen, ob eine solche Liste korrekt funktioniert!
Dazu schreiben wir eine einfache Funktion, die die gesamte Liste ausgibt.
Die Funktion erhält einen Zeiger auf den Speicherbereich, in dem der Kopf (erste) Knoten der Liste gespeichert ist.
void printList(struct Node* head) {}
Anschließend wird ein temporärer Knoten current erstellt, mit dem wir die gesamte Liste durchlaufen. Der Inhalt des aktuellen Knotens entspricht dem Inhalt des aktuellen Listenknotens.
struct Node* current = head;
Zum Durchlaufen der Liste verwenden wir die while(){}-Schleife mit der notwendigen Bedingung, nämlich bis ein Knoten gefunden wird, dessen next-Feld NULL ist.
Der temp (temporäre) Knoten übernimmt die Rolle eines Pufferknotens. Er wird benötigt, um den Inhalt des aktuellen Knotens vorübergehend zu speichern (und zu löschen). Wenn wir den aktuellen Knoten sofort löschen, verlieren wir die Verbindung zum nächsten Knoten, was bedeutet, dass der Zugriff auf die Liste verloren geht.
while (current != NULL) { }
printf("\n");
Innerhalb der Schleife geben wir den Inhalt des data-Feldes des aktuellen Knotens aus und ändern das next-Feld, um zum nächsten Knoten zu wechseln.
printf("%d ", current->data);
current = current->next;
Sobald ein Knoten gefunden wird, dessen next-Feld gleich NULL ist, stoppt die Schleife die Anzeige der Inhalte der Knoten und die Funktion endet.
Swipe to start coding
Implementierung einer einfachen einfach verketteten Liste mit dynamischer Speicherzuweisung. Die Aufgabe besteht darin, die Funktionen printList und freeList zu vervollständigen.
-
Implementierung einer Funktion
printListmit einem einzelnen Parameterstruct Node* head.- Innerhalb von
printListeine Variablecurrentdeklarieren und mitheadinitialisieren. - Eine
while-Schleife verwenden, um so lange zu iterieren, wiecurrentnichtNULList. - In jeder Iteration das Feld
datavoncurrentausgeben undcurrentauf das nächste Element setzen. - Nach der Schleife ein Newline-Zeichen ausgeben, um die Ausgabe zu trennen.
- Innerhalb von
-
Innerhalb von
freeListeine Variablecurrentdeklarieren und mitheadinitialisieren.- Eine
while-Schleife verwenden, um so lange zu iterieren, wiecurrentnichtNULList. - Innerhalb der Schleife
currentin einer temporären Variabletempspeichern. currentauf das nächste Element setzen.- Den für
tempreservierten Speicher freigeben.
- Eine
Lösung
Danke für Ihr Feedback!
single