Algoritmi e strutture dati in Go
Go ti dà slice e mappe e lascia il resto a te: nessun tipo pila, coda o insieme, e un heap in container/heap che non fa nulla finché non implementi heap.Interface. Questo percorso ti fa costruire ogni struttura in Go con struct e puntatori, poi le usi per ordinare, ricorrere e visitare grafi, e concludi con problemi da colloquio valutati. Gratis, nel browser, con un certificato nella maggior parte dei corsi.
377 lezioni228 sfide702 domande del quiz
- Adatto ai principianti
Aiuto alla programmazione con l'AI
Lezioni interattive pratiche
Narrazione audio in ogni lezione
Quiz per mettere alla prova le tue conoscenze
23 certificati gratuiti lungo il percorso
Algoritmi e strutture dati in Go, passo dopo passo
Ogni passaggio è un insieme di corsi Coddy già esistenti, e ogni pulsante Inizia li apre in Go. I tre corsi non ancora insegnati in Go sono elencati dopo i passaggi.
- 1Passo 15 corsi, in ordine
- 2Passo 2
Serie sulle strutture dati, parte due
Inizia questo passoIniziaLista doppiamente concatenata, heap e code di priorità, trie, grafi e l'albero AVL autobilanciato.container/listè la prima di queste, già pronta; dopo questo passaggio i cinque metodi diheap.Interfacehanno senso, perché hai costruito un heap da te, e l'albero bilanciato che Go non ha mai incluso è uno che sai costruire.Inizia5 corsi, in ordine- Lista doppiamente concatenata - Serie sulle strutture dati n. 614 lezioni6 sfide
- Heap e code con priorità - Serie sulle strutture dati #714 lezioni6 sfide
- Trie - Serie sulle strutture dati n. 814 lezioni12 sfide
- Grafi - Serie sulle strutture dati #914 lezioni12 sfide
- Albero AVL - Serie sulle strutture dati #1016 lezioni6 sfide
- 3Passo 3
Algoritmi di ordinamento
Inizia questo passoIniziaBubble sort, selection, insertion, merge, quick, heap, counting e radix sort, scritti in Go e osservati nel visualizzatore.sort.Sliceusa il pattern-defeating quicksort da Go 1.19, ancheslices.Sortlo usa, e nessuno dei due è stabile, ed è per questo che esistesort.SliceStable; dopo questo passaggio sai cosa significa ognuna di queste parole.Inizia8 corsi, in ordine- Ordinamento a bolle11 lezioni10 sfide
- Ordinamento per selezione - Serie DSA9 lezioni3 sfide54 domande
- Ordinamento per inserimento - Serie DSA9 lezioni3 sfide
- Merge Sort - Serie DSA9 lezioni3 sfide52 domande
- Quick Sort - Serie DSA9 lezioni3 sfide52 domande
- Heap Sort - Serie DSA9 lezioni3 sfide54 domande
- Ordinamento per conteggio - Serie DSA9 lezioni3 sfide52 domande
- Ordinamento Radix - Serie DSA9 lezioni3 sfide55 domande
- 4Passo 4
Pensiero ricorsivoPagina dedicata
Inizia questo passoIniziaSfide di ricorsione in Go, dove gli stack delle goroutine partono piccoli e crescono su richiesta, quindi una ricorsione profonda migliaia di chiamate raramente va in overflow. Un caso base mancante raggiunge comunque il limite, 1 GB di stack sui sistemi a 64 bit per impostazione predefinita, e termina con un errore fatale invece che con un programma lento. La programmazione dinamica e la manipolazione dei bit sono elencate dopo i passaggi, perché sono insegnate in Python e in C++.IniziaPagina dedicata - 5Passo 5
Algoritmi sui grafi
Inizia questo passoIniziaRicerca in ampiezza e in profondità, Dijkstra, Bellman-Ford, ordinamento topologico, Kruskal e Prim in Go, sul grafo che hai costruito nel secondo passaggio. La coda di priorità di Dijkstra in Go ècontainer/heapsu uno slice di un tuo tipo: l'heap del secondo passaggio, dietro un'interfaccia.Inizia7 corsi, in ordine- Ricerca in ampiezza - Algoritmi sui grafi9 lezioni3 sfide54 domande
- Ricerca in profondità - Algoritmi su grafi9 lezioni3 sfide54 domande
- Algoritmo di Dijkstra - Algoritmi su grafi9 lezioni3 sfide54 domande
- Algoritmo di Bellman-Ford - Algoritmi sui grafi9 lezioni3 sfide54 domande
- Ordinamento topologico - Algoritmi sui grafi9 lezioni3 sfide55 domande
- Algoritmo di Kruskal - Algoritmi sui grafi9 lezioni3 sfide57 domande
- Algoritmo di Prim - Algoritmi sui grafi9 lezioni3 sfide55 domande
- 6Passo 6
Pratica per i colloqui
Inizia questo passoIniziaDieci pacchetti di sfide da colloquio e due raccolte di problemi di programmazione in Go, valutati da casi di test: problemi mai visti, risolti senza tutorial, con slice, mappe e le strutture che hai costruito lungo il percorso.Inizia12 corsi, in ordine- Sfide di programmazione per colloqui - Pacchetto I3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto II3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto III3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto IV3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto V3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto VI3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto VII3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto VIII3 lezioni3 sfide
- Sfide di programmazione per colloqui - Pacchetto IX3 lezioni3 sfide
- Sfide di programmazione per colloqui - X3 lezioni3 sfide
- Problemi di programmazione32 lezioni31 sfide
- Esercizi di programmazione: Volume 225 lezioni24 sfide
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.
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!
January 2026
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
Lascia o raddoppia
Giorno 5 di 7
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.
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!
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.
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.
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.
Perché imparare algoritmi e strutture dati in Go su Coddy
- Le strutture che Go lascia a te. Go integra slice e mappe e si ferma lì: una pila è uno slice a cui fai
appende che ritagli, un insieme è unamap[T]struct{}, e non esiste alcun tipo coda né albero. Saper scrivere quelli che mancano, e sapere quanto costa ogni operazione sugli slice, fa parte del conoscere Go. - Struct e puntatori, niente di nascosto. Go non ha classi: un nodo è una
structcon un puntatore al successivo, e i metodi sono agganciati al tipo. Una lista concatenata o un albero appaiono esattamente per ciò che sono, i generics (da Go 1.18) li rendono riutilizzabili per qualsiasi tipo di elemento, e il garbage collector fa sì che non ci sianomallocofreeda gestire. - Quasi tutto il percorso in Go. Ogni struttura dati, ordinamento, algoritmo sui grafi, sfida di ricorsione e pacchetto da colloquio è insegnato in Go. Tre corsi sono insegnati altrove ed elencati dopo i passaggi con un link a ciascuno: la programmazione dinamica e la serie di colloqui in Python, in Python, e la manipolazione dei bit, in C++. La manipolazione dei bit si legge in modo naturale da Go, che ha gli stessi
&,|,^,<<e>>del C++ e scrive il NOT come^x. - Valutato come in un colloquio. Ogni lezione termina con una sfida in Go 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 su algoritmi e strutture dati in Go
Go va bene per algoritmi e strutture dati?
container/list e container/heap, le strutture le scrivi tu, che in un percorso di apprendimento è proprio lo scopo. Go fa anche girare buona parte dell'infrastruttura cloud di oggi, Docker e Kubernetes compresi, il che lo rende un linguaggio naturale per i colloqui backend.Quali tipi e pacchetti di Go corrispondono a quali strutture dati?
append e il reslicing è anche la tua pila; una mappa è una tabella hash, e map[T]struct{} è l'insieme idiomatico; container/list è una lista doppiamente concatenata; e container/heap gestisce un heap binario su qualsiasi tipo che implementi heap.Interface. Non esistono tipi coda, albero, trie o grafo, quindi quelli li costruisci tu, nel primo e nel secondo passaggio.Come funziona container/heap in Go?
container/heap in Go?heap.Interface su un tuo tipo slice: Len, Less e Swap da sort.Interface, più Push e Pop, che si limitano ad aggiungere e rimuovere dalla fine dello slice. Poi chiami le funzioni del pacchetto heap.Push e heap.Pop, mai i tuoi metodi, e sono loro a spostare gli elementi su e giù per mantenere l'ordine. Sembra strano finché non hai scritto un heap da te, ed è quello che fai nel secondo passaggio.Perché scorrere una mappa in Go dà un ordine diverso ogni volta?
Quali corsi di questo percorso non sono insegnati in Go?
&^, AND NOT, che azzera nell'operando sinistro ogni bit impostato in quello destro.