Programmazione con Laboratorio 2
Crediti: 6
Anno Accademico 2007/2008
Docente: Alessandra Gabriele
Argomenti sviluppati durante il corso.
- Modello e Struttura dei dati. Gestione della memoria: area globale, stack e heap.
- Modello Lista e relative operazioni. Array statici e dinamici. Limiti degli array.
Puntatori. Liste lineari. Gestione di una lista: operazioni di inserimento, ricerca e
cancellazione.
- Due modelli basati sulla lista: Pila e Coda. Implementazione tramite array e
tramite liste concatenate. Operazioni sulle pile: Push e Pop. Operazioni sulle
code: Enqueue e Dequeue.
- Unit e programmazione modulare: Interface e Implementation.
- Alberi. Alberi binari. Implementazioni di alberi binari tramite array e tramite
record e puntatori. Visite ricorsive degli alberi in preordine, inordine e
postordine. Visita in ampiezza di un albero (visita per livelli). Versione iterativa
della visita in preordine di un albero tramite una pila.
- Alberi d’espressione. Corrispondenza tra le visite di un albero e le notazioni
prefisse, infisse e postfisse di un’espressione aritmetica.
- Alberi binari di ricerca (ABR). Creazione di un ABR. Ricerca, inserimento e
cancellazione di un elemento in un ABR. Costo delle operazioni di dizionario
sugli alberi binari di ricerca. Caso pessimo, caso ottimo e caso medio.
- Gestione dei file di testo (TextFile). Typed File.
- Grafi. Implementazione dei grafi: matrice di adiacenze e array delle adiacenze.
Operazioni sui grafi e loro costo. Visita in ampiezza di un grafo (BFS).
Determinazione dei cammini più corti in un grafo. Visita in profondità di un
grafo (DFS). Verifica di aciclicità in un grafo.
- Ordinamento. Definizione del problema. Teorema del lower bound per gli
algoritmi di ordinamento basati su confronti. Algoritmi di ordinamento iterativi:
SelectionSort, InsertionSort, BubbleSort. Algoritmi di ordinamento ricorsivi:
MergeSort, QuickSort. Il BucketSort.
Libri consigliati:
A. Guidi, N. Renzoni, Pascal - guida alla programmazione, McGraw-Hill.
A. V. Aho, J. D. Ullman, Fondamenti di Informatica, Zanichelli.
T. H. Cormen, C. E. Leiserson, R. L. Rivest, Introduzione agli Algoritmi,
Jackson Libri.
T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduzione agli
Algoritmi e Strutture dati, McGraw-Hill.
C. Demetrescu, I. Finocchi, G.F. Italiano, Algoritmi e Strutture Dati, McGrawHill.