Attraversamento e Visualizzazione di una Lista Collegata
Dopo aver imparato come creare e collegare i nodi, è necessario verificare che tale lista funzioni correttamente!
Per fare ciò, si può scrivere una semplice funzione che visualizza l'intera lista.
La funzione accetterà un puntatore all'area di memoria in cui è memorizzato il nodo head (primo) della lista.
void printList(struct Node* head) {}
Successivamente verrà creato un nodo temporaneo current, con il quale si attraverserà l'intera lista. Il contenuto del nodo current sarà uguale al contenuto del nodo corrente della lista.
struct Node* current = head;
Per iterare sulla lista, si utilizza il ciclo while(){} con la condizione necessaria, ovvero, fino a quando non si trova un nodo il cui campo next è NULL.
Il nodo temp (temporaneo) svolge il ruolo di nodo buffer. Serve per memorizzare temporaneamente (e cancellare) il contenuto del nodo corrente. Se si cancella immediatamente il nodo corrente, si perderà la connessione con il nodo successivo, il che significa che l'accesso alla lista verrà perso.
while (current != NULL) { }
printf("\n");
All'interno del ciclo, si visualizzerà il contenuto del campo data del nodo corrente e si modificherà il campo next per passare al nodo successivo.
printf("%d ", current->data);
current = current->next;
Non appena viene trovato un nodo il cui campo next è uguale a NULL, il ciclo interrompe la visualizzazione del contenuto dei nodi e la funzione termina.
Swipe to start coding
Implementare una semplice lista collegata singolarmente con allocazione dinamica della memoria. Il compito è completare le funzioni printList e freeList.
-
Implementare una funzione
printListcon un singolo parametrostruct Node* head.- All'interno di
printList, dichiarare una variabilecurrente inizializzarla ahead. - Utilizzare un ciclo
whileper iterare finchécurrentnon èNULL. - In ogni iterazione, stampare il campo
datadicurrente spostarecurrental nodo successivo. - Dopo il ciclo, stampare un carattere di nuova linea per separare l'output.
- All'interno di
-
All'interno di
freeList, dichiarare una variabilecurrente inizializzarla ahead.- Utilizzare un ciclo
whileper iterare finchécurrentnon èNULL. - All'interno del ciclo, memorizzare
currentin una variabile temporaneatemp. - Spostare
currental nodo successivo. - Liberare la memoria allocata per
temp.
- Utilizzare un ciclo
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 4.35
Attraversamento e Visualizzazione di una Lista Collegata
Scorri per mostrare il menu
Dopo aver imparato come creare e collegare i nodi, è necessario verificare che tale lista funzioni correttamente!
Per fare ciò, si può scrivere una semplice funzione che visualizza l'intera lista.
La funzione accetterà un puntatore all'area di memoria in cui è memorizzato il nodo head (primo) della lista.
void printList(struct Node* head) {}
Successivamente verrà creato un nodo temporaneo current, con il quale si attraverserà l'intera lista. Il contenuto del nodo current sarà uguale al contenuto del nodo corrente della lista.
struct Node* current = head;
Per iterare sulla lista, si utilizza il ciclo while(){} con la condizione necessaria, ovvero, fino a quando non si trova un nodo il cui campo next è NULL.
Il nodo temp (temporaneo) svolge il ruolo di nodo buffer. Serve per memorizzare temporaneamente (e cancellare) il contenuto del nodo corrente. Se si cancella immediatamente il nodo corrente, si perderà la connessione con il nodo successivo, il che significa che l'accesso alla lista verrà perso.
while (current != NULL) { }
printf("\n");
All'interno del ciclo, si visualizzerà il contenuto del campo data del nodo corrente e si modificherà il campo next per passare al nodo successivo.
printf("%d ", current->data);
current = current->next;
Non appena viene trovato un nodo il cui campo next è uguale a NULL, il ciclo interrompe la visualizzazione del contenuto dei nodi e la funzione termina.
Swipe to start coding
Implementare una semplice lista collegata singolarmente con allocazione dinamica della memoria. Il compito è completare le funzioni printList e freeList.
-
Implementare una funzione
printListcon un singolo parametrostruct Node* head.- All'interno di
printList, dichiarare una variabilecurrente inizializzarla ahead. - Utilizzare un ciclo
whileper iterare finchécurrentnon èNULL. - In ogni iterazione, stampare il campo
datadicurrente spostarecurrental nodo successivo. - Dopo il ciclo, stampare un carattere di nuova linea per separare l'output.
- All'interno di
-
All'interno di
freeList, dichiarare una variabilecurrente inizializzarla ahead.- Utilizzare un ciclo
whileper iterare finchécurrentnon èNULL. - All'interno del ciclo, memorizzare
currentin una variabile temporaneatemp. - Spostare
currental nodo successivo. - Liberare la memoria allocata per
temp.
- Utilizzare un ciclo
Soluzione
Grazie per i tuoi commenti!
single