Esercizi e sorgenti dei programmi

In questa pagina sono raccolti un insieme di esercizi e di sorgenti di programmi realizzati durante le esercitazioni in laboratorio. Sono disponibili le istruzioni per l'installazione e l'utilizzo del programma Cygwin in ambiente Windows per la compilazione e l'esecuzione di programmi in linguaggio C.

Combinatoria su insiemi

Stringhe Binarie
Calcola e visualizza tutte le 2n stringhe binarie S = (s0, s1, ..., sn−1) di lunghezza n.

Algoritmi su grafi e reti di flusso

Libreria grafi.c
Una libreria di funzioni utili in linguaggio C per la realizzazione di programmi su grafi.
Componenti Fortmente Connesse
Codifica delle funzioni per il calcolo delle componenti fortemente connesse di un grafo G orientato.
Ordinamento topologico
Programmino per il calcolo dell'ordinamento topologico dell'insieme dei vertici di un grafo orientato aciclico.
Algoritmo di Bellman-Ford per grafi orientati aciclici
Codifica dell'algoritmo di Bellman-Ford per la costruzione dei cammini di costo minimo da una sorgente singola su un grafo orientato, aciclico, con pesi assegnati agli spigoli.
Cammini di costo minimo tra tutte le coppie di vertici di un grafo pesato
Codifica dell'algoritmo ALLPAIRSSHORTESTPATH per la soluzione del problema del calcolo del costo del cammino minimo per collegare ogni coppia di vertici di un grafo con pesi assegnati agli spigoli. L'algoritmo adotta la tecnica della programmazione dinamica.
Cammini di costo minimo tra tutte le coppie di vertici di un grafo pesato (ottimizzato)
Codifica dell'algoritmo FASTALLPAIRSSHORTESTPATH per la soluzione del problema del calcolo del costo del cammino minimo per collegare ogni coppia di vertici di un grafo con pesi assegnati agli spigoli. L'algoritmo adotta la tecnica della programmazione dinamica ed introduce un criterio di ottimizzazione che lo rende più efficiente rispetto all'algoritmo ALLPAIRSSHORTESTPATH.
Algoritmo di Floyd-Warshall
Codifica dell'algoritmo di Floyd-Warshall per la soluzione del problema del calcolo del cammino di costo minimo per collegare ogni coppia di vertici di un grafo con pesi assegnati agli spigoli. L'algoritmo adotta la tecnica della programmazione dinamica e calcola anche la matrice di adiacenza del grafo chiusura transitiva di G.
Algoritmo Push-Relabel
Codifica dell'algoritmo PUSHRELABEL per la soluzione del problema del calcolo del valore del flusso massimo su una rete G.
Partizionamento di un albero
Calcolo di tutte le p-partizioni in p componenti connesse non nulle di un albero T con n vertici.