0Pricing
C Academy · Lezione

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.
Alberi e grafi — illustrazione 1

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!

Alberi e grafi — illustrazione 10

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

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