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.