0Pricing
C Academy · Lezione

Liste concatenate

Impari come funzionano le liste concatenate e come implementare operazioni come inserimento ed eliminazione.

Liste concatenate è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 3 lezioni in totale.

Liste concatenate in C

Liste concatenate in C

Una lista concatenata è una struttura dati dinamica in cui gli elementi (nodi) sono collegati tramite puntatori.

In questa lezione imparerà:

  • Come funzionano le liste concatenate.
  • Come inserire ed eliminare nodi in una lista concatenata.
  • I vantaggi delle liste concatenate rispetto agli array.
Liste concatenate — illustrazione 1

Esempio: definizione di un nodo di una lista concatenata

Esempio: definizione di un nodo di una lista concatenata

In C, un nodo di una lista concatenata viene definito usando una struct con un campo dati e un puntatore al nodo successivo.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

int main() {
    struct Node *head = NULL;
    return 0;
}

Inserimento di un nodo all'inizio

Inserimento di un nodo all'inizio

Per inserire un nuovo nodo all'inizio di una lista concatenata:

  • Crei un nuovo nodo.
  • Imposti il suo puntatore next sulla testa corrente.
  • Aggiorni il puntatore della testa.

Esempio: inserimento di un nodo all'inizio

Esempio: inserimento di un nodo all'inizio

Questo programma inserisce un nuovo nodo all'inizio di una lista concatenata.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void insertAtBeginning(struct Node **head, int newData) {
    struct Node *newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = newData;
    newNode->next = *head;
    *head = newNode;
}

int main() {
    struct Node *head = NULL;
    insertAtBeginning(&head, 10);
    printf("Inserted: %d\n", head->data);
    return 0;
}

Eliminazione di un nodo

Eliminazione di un nodo

Per eliminare un nodo da una lista concatenata:

  • Trovi il nodo da eliminare.
  • Aggiorni il puntatore next del nodo precedente.
  • Libera la memoria del nodo eliminato.

Esempio: eliminazione di un nodo

Esempio: eliminazione di un nodo

Questo programma elimina un nodo da una lista concatenata.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void deleteNode(struct Node **head, int key) {
    struct Node *temp = *head, *prev;
    if (temp != NULL && temp->data == key) {
        *head = temp->next;
        free(temp);
        return;
    }
    while (temp != NULL && temp->data != key) {
        prev = temp;
        temp = temp->next;
    }
    if (temp == NULL) return;
    prev->next = temp->next;
    free(temp);
}

int main() {
    struct Node *head = (struct Node*)malloc(sizeof(struct Node));
    head->data = 10;
    head->next = NULL;
    deleteNode(&head, 10);
    return 0;
}

Vantaggi delle liste concatenate

Vantaggi delle liste concatenate

Le liste concatenate offrono diversi vantaggi rispetto agli array:

  • Dimensione dinamica (non è necessario specificarla in anticipo).
  • Inserimenti ed eliminazioni efficienti.
  • Nessuno spreco di memoria dovuto a dimensioni fisse.

Riepilogo

Riepilogo

In questa lezione ha imparato:

  • Che cosa sono le liste concatenate e come funzionano.
  • Come inserire ed eliminare nodi.
  • I vantaggi delle liste concatenate rispetto agli array.

Successivamente, esploreremo gli stack e le code in C.

Liste concatenate — illustrazione 9

Domande Frequenti

La lezione «Liste concatenate» è gratuita?

Sì — il testo completo di «Liste concatenate» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 3 lezioni in totale.

Cosa imparerò in «Liste concatenate»?

Impari come funzionano le liste concatenate e come implementare operazioni come inserimento ed eliminazione. Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C Academy?

Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 3.

Quanto tempo richiede la lezione «Liste concatenate»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C Academy?

Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Liste concatenate
  2. Stack e code
  3. Alberi e grafi
← Torna a C Academy