Menu
Coddy logo textTech
Percorso di apprendimento

Algoritmi e strutture dati in C

Il C ti dà array, struct e puntatori, e nient'altro, quindi ogni struttura di questo percorso la costruisci tu: uno stack da un array, una lista concatenata con malloc, una tabella hash da bucket di nodi. È il classico corso universitario, affrontato in pratica, seguito da ordinamento, ricorsione, grafi e problemi da colloquio valutati. Gratis, nel browser, con un certificato nella maggior parte dei corsi.

377 lezioni228 sfide702 domande del quiz

Strutture dati in C, passo dopo passo

38 corsi377 lezioni228 sfide702 domande del quiz

Ogni passo è un insieme di corsi Coddy già esistenti, e ogni pulsante Inizia li apre in C. I tre corsi non ancora insegnati in C sono elencati dopo i passi.

  1. 1
    Inizia questo passoIniziaStack, coda, albero binario, tabella hash e lista concatenata, ognuno costruito da zero in C con struct, puntatori e malloc, poi usato per risolvere problemi. Le cinque strutture dietro la maggior parte delle domande da colloquio, con ogni byte sotto controllo.Inizia
  2. 2
    Inizia questo passoIniziaLista doppiamente concatenata, heap e code di priorità, trie, grafi e l'albero AVL autobilanciato. In C un trie è un array di puntatori ai figli per ogni nodo e un grafo un array di liste di adiacenza, quindi è il passo che rende i puntatori una seconda natura.Inizia
  3. 3
    Inizia questo passoIniziaBubble sort, selection, insertion, merge, quick, heap, counting e radix sort, scritti in C e osservati nel visualizzatore. L'unico ordinamento della libreria standard, qsort, riceve un puntatore a una funzione di confronto; dopo questo passo sai scrivere sia il comparatore sia l'ordinamento che c'è dietro.Inizia
  4. 4
    Inizia questo passoIniziaSfide di ricorsione in C. La programmazione dinamica (insegnata in Python) e la manipolazione dei bit (insegnata in C++) sono elencate dopo i passi, e la seconda è più vicina di quanto sembri: il C++ ha mantenuto gli operatori bit a bit del C esattamente come sono.IniziaPagina dedicata
  5. 5
    Inizia questo passoIniziaRicerca in ampiezza e in profondità, Dijkstra, Bellman-Ford, ordinamento topologico, Kruskal e Prim in C, sul grafo che hai costruito nel secondo passo. Il C non ha code di priorità, quindi l'heap che hai scritto nel secondo passo è proprio quello che serve a Dijkstra.Inizia
  6. 6
Cosa ottieni
Tutto ciò che userai per imparare a programmare

Impara facendo

Scrivi codice vero, interroga database, crea siti web e padroneggia i prompt per l'AI. Le nostre lezioni interattive coprono tutte le competenze di cui ha bisogno uno sviluppatore moderno.

playground.js
Editor di codice
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Test #1test Case Success icon
Test #2test Case Success icon
Test #3test Case Failure icon
Input
"Alex"
Output
"Hello, Coddy! Alex"

Costruisci la tua serie

Sii costante e guarda crescere i tuoi progressi! Tieni traccia della tua abitudine quotidiana di programmare, proteggi la tua serie con i giorni di congelamento e guadagna ricompense ogni giorno che ti presenti.

12 giorni di serie

Torna domani per mantenere la tua serie!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

Lascia o raddoppia

Giorno 5 di 7

fire Freeze icon

Congela serie

2 left

Programma ovunque

Porta il tuo percorso di programmazione sempre con te! Niente configurazioni, niente download: apri l'app e inizia a programmare. Disponibile su iOS, Android e Web con valutazioni di 4,9 stelle.

Python
7Serie
250Punteggio
5Energia
Variabili
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
CONTINUA
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Percorso
Obiettivi
Classifica
Profilo
4.9
StellaStellaStellaStellaStella
Valutazione

Non sei solo

Competi nelle classifiche globali, invita gli amici per guadagnare ricompense e festeggiate insieme i vostri successi. Programmare è più bello con gli amici!

Lega Sfidante
Lega SfidanteI primi 7 avanzano
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconZona promozioneleaderboard Arrow Up icon

Tutti i modi per imparare

Leggi, ascolta, mettiti alla prova, chiedi all'AI o ripassa qualsiasi cosa tu abbia già visto. Ogni lezione si adatta a te.

Introduzione alle variabili
Audio

Una variabile è un contenitore con un nome che memorizza un valore a cui puoi fare riferimento più avanti nel programma.

In Python la crei scrivendo il nome, un segno di uguale e poi il valore che vuoi memorizzare.

Il valore può cambiare nel tempo: riassegnare il nome lo fa semplicemente puntare a un nuovo valore.

1xSarah

Ottieni un certificato

Ottieni un certificato per ogni corso che completi. Aggiungilo al tuo profilo LinkedIn e al curriculum per mostrare ai datori di lavoro le tue competenze di programmazione.

CoddyCertificato di completamento
Si certifica cheMario Rossiha completato con successo
python iconFondamenti di Python
Verificato
Datagen 2026
LinkedInAggiungi a LinkedIn

Perché imparare le strutture dati in C su Coddy

  • Niente è nascosto. La libreria standard del C non ha liste, mappe o code, quindi non c'è niente di già pronto su cui appoggiarsi: ogni nodo è una struct, ogni collegamento un puntatore, ogni allocazione una malloc che poi liberi. Le strutture imparate così sono quelle che poi capisci in ogni altro linguaggio.
  • Il corso universitario, fatto in pratica. Le strutture dati in C sono un esame fondamentale in molti corsi di laurea in informatica. Questo percorso copre lo stesso terreno, dallo stack all'albero AVL, gli ordinamenti e gli algoritmi sui grafi, come codice che esegui e che viene valutato mentre lo scrivi.
  • Quasi tutto il percorso in C. Ogni struttura dati, ordinamento, algoritmo sui grafi, sfida di ricorsione e pacchetto per i colloqui è insegnato in C. I tre che non lo sono, la programmazione dinamica e la serie di colloqui Python (in Python) e la manipolazione dei bit (in C++, che ha mantenuto gli operatori bit a bit del C), sono elencati dopo i passi.
  • Valutato come in un colloquio. Ogni lezione termina con una sfida in C verificata da casi di test, e quando una fallisce Bugsy legge il tuo codice e ti indirizza verso la correzione senza darti la risposta. Un certificato gratuito nella maggior parte dei corsi, ognuno verificabile al proprio URL.

Domande frequenti sulle strutture dati in C

Perché imparare le strutture dati in C?

Perché il C non nasconde niente. Senza liste, mappe o code già pronte, implementi ogni struttura a partire da blocchi di memoria e puntatori, che è esattamente ciò che la struttura è. Dopo, la HashMap di Java e il dict di Python sono le stesse idee con la gestione della memoria fatta per te, e sai ragionare su quanto costano.

Cosa devo sapere prima di imparare le strutture dati in C?

Puntatori, struct, array, e malloc e free. Soprattutto i puntatori: una lista concatenata è una catena di campi struct node *next, e un albero binario ne ha due per nodo. Se i puntatori ti sembrano ancora incerti, il corso di C di Coddy li tratta prima, gratis.

Come si implementa una tabella hash in C?

Con un array di bucket, una funzione hash che trasforma una chiave in un indice e una regola per due chiavi che finiscono nello stesso bucket: di solito una lista concatenata per bucket (chaining) o la ricerca del prossimo slot libero (probing). Quando la tabella supera un fattore di carico prestabilito, allochi un array più grande e reinserisci tutto. Il corso sulle tabelle hash del primo passo ne costruisce una da zero.

Il C è un buon linguaggio per i colloqui di programmazione?

Pochi candidati fanno i colloqui in C al di fuori dei ruoli embedded e di sistema, perché scrivere una tabella hash da zero durante un colloquio costa tempo che altri linguaggi ti regalano. Le conoscenze però si trasferiscono del tutto, e il C++ è a un passo: stessa sintassi, più la STL. Una strada comune è imparare le strutture in C e poi affrontare i pacchetti per i colloqui in C++, Java o Python, tutti offerti da questo percorso.

Quali corsi di questo percorso non sono insegnati in C?

Tre: la programmazione dinamica e la serie di colloqui Python sono insegnate in Python, e la manipolazione dei bit in C++. Sono elencati dopo i passi, ognuno con un link che lo apre nel suo linguaggio. La manipolazione dei bit è la più facile da seguire partendo dal C: il C++ ha mantenuto &, |, ^, ~, << e >> del C esattamente come sono.

Meglio imparare le strutture dati in C o in C++?

In C per capire le strutture, in C++ per usarle. In C costruisci tutto, ed è per questo che così tanti corsi di laurea insegnano la materia in C; in C++ costruisci ogni struttura una volta e poi ricorri alla STL, ed è per questo che la usano i programmatori competitivi. Partire dal C e passare al C++ non fa perdere nulla.

Altri percorsi di apprendimento

Gli stessi corsi, organizzati per un ruolo diverso. I progressi si mantengono: un corso completato in un percorso vale per ogni percorso che lo include.

Tutti i percorsi di apprendimento
Illustrazione dei linguaggi di programmazione di Coddy

Inizia gratis il percorso Algoritmi e strutture dati

Inizia a imparare