Alberi e grafi
Esplori le strutture ad albero e a grafo per rappresentare dati gerarchici e organizzati in rete.
Alberi e grafi è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 3 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.
Alberi e grafi in C
Alberi e grafi in C
Gli alberi e i grafi sono strutture dati non lineari usate per rappresentare dati gerarchici e dati organizzati in rete.
In questa lezione imparerà:
- Come sono strutturati gli alberi e i grafi.
- Come implementare un albero binario in C.
- Come rappresentare i grafi usando liste e matrici di adiacenza.

Che cos'è un albero?
Che cos'è un albero?
Un albero è una struttura dati gerarchica composta da nodi.
Termini chiave:
- Radice - Il nodo più in alto.
- Padre e figlio - Nodi collegati direttamente.
- Foglia - Un nodo senza figli.
Esempio: nodo di un albero binario
Esempio: nodo di un albero binario
In C, un nodo di un albero binario viene definito utilizzando una struct con puntatori al figlio sinistro e al figlio destro.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *left, *right;
};
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->left = newNode->right = NULL;
return newNode;
}
int main() {
struct Node *root = createNode(10);
return 0;
}Attraversamento di un albero binario
Attraversamento di un albero binario
Metodi di attraversamento:
- Inorder (LNR) - Sinistro, nodo, destro.
- Preorder (NLR) - Nodo, sinistro, destro.
- Postorder (LRN) - Sinistro, destro, nodo.
Esempio: attraversamento inorder
Esempio: attraversamento inorder
Questo programma esegue un attraversamento inorder di un albero binario.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *left, *right;
};
void inorder(struct Node *root) {
if (root != NULL) {
inorder(root->left);
printf("%d ", root->data);
inorder(root->right);
}
}
int main() {
struct Node *root = malloc(sizeof(struct Node));
root->data = 10;
root->left = NULL;
root->right = NULL;
inorder(root);
return 0;
}Che cos'è un grafo?
Che cos'è un grafo?
Un grafo è un insieme di nodi (vertici) collegati da archi.
I grafi possono essere:
- Orientati - Gli archi hanno una direzione.
- Non orientati - Gli archi non hanno una direzione.
Rappresentazione dei grafi
Rappresentazione dei grafi
I grafi possono essere rappresentati utilizzando:
- Matrice di adiacenza - Un array bidimensionale che rappresenta le connessioni.
- Lista di adiacenza - Un elenco in cui ogni nodo punta ai propri vicini.
Attraversamento dei grafi
Attraversamento dei grafi
Metodi di attraversamento comuni:
- Ricerca in ampiezza (BFS) - Visita tutti i vicini prima di procedere più in profondità.
- Ricerca in profondità (DFS) - Esplora il percorso più profondo possibile prima di tornare indietro.
Riepilogo
Riepilogo
In questa lezione ha imparato:
- Come sono strutturati alberi e grafi.
- Come eseguire gli attraversamenti degli alberi.
- Come vengono rappresentati e attraversati i grafi.
Questa è la conclusione della sezione Strutture dati in C!

Domande Frequenti
La lezione «Alberi e grafi» è gratuita?
Sì — il testo completo di «Alberi e grafi» è 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 «Alberi e grafi»?
Esplori le strutture ad albero e a grafo per rappresentare dati gerarchici e organizzati in rete. 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 3 di 3.
Quanto tempo richiede la lezione «Alberi e grafi»?
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
- Liste concatenate
- Stack e code
- Alberi e grafi