Liste, Pile e Code. 1. L ADT Lista. Liste Pile e Code Pag. 1/18
|
|
- Marino Giordano
- 7 anni fa
- Visualizzazioni
Transcript
1 Liste Pile e Code Pag. 1/18 Liste, Pile e Code Le liste, le pile e le code rappresentano tre ADT elementari che ricorrono frequentemente nella vita reale. Esempi usuali di una lista, una pila ed una coda sono rispettivamente una lista della spesa, una pila di piatti e una coda in un pubblico esercizio. La prima rappresenta un insieme di oggetti da acquistare che possono essere scritti (inseriti) o depennati (cancellati) senza alcuna particolare regola. La seconda anch essa rappresenta un insieme di oggetti, però gestiti attraverso l applicazione di una regola pratica: prelevo in testa ed inserisco in testa. Infine l ultima è gestita mediante una regola dettata dal vivere civile: la prima persona che entra è la prima persona ad essere servita! Nell esamina dei tre ADT introdurremo un altro concetto, quello di struttura dati, termine che utilizzeremo quando nella disamina ci occuperemo sia della organizzazione delle informazioni che della efficiente implementazione di un operatore; concetti che come vedremo sono fortemente connessi tra loro. 1. L ADT Lista Una lista consiste in una sequenza di n oggetti ( a 1,, a n ) appartenenti ad un insieme S. La lunghezza di una lista è determinata dal numero dei suoi elementi. Definiamo vuota una lista che ha lunghezza zero. Un elemento di una lista è caratterizzato da una posizione: indichiamo con a i l elemento in posizione i-esima all interno di una lista L=( a 1, a 2,, a n ). Esempio 1.1 Esempi di lista sono: L 1 = ( 71, 21, 39 ) dove Lunghezza(L) = 3 e a 1 = 71, a 2 = 21, a 3 = 39 L 2 = ( 23, 45, 139, 13 ) dove Lunghezza(L) = 4 e a 1 = 23, a 2 =45, a 3 = 139, a 4 = 13
2 Liste Pile e Code Pag. 2/18 Le operazioni tipiche su una lista sono la ricerca di un elemento, l estrazione di un elemento presente in una data posizione, l inserimento e la cancellazione. Utilizzando i formalismi dell ADT: Tipo di dato: Lista Insieme L di n elementi estratti da un insieme S Operazioni: CercaChiave( elemento e ) posizione Cerca l elemento e all interno della lista L e restituisce l indice compreso tra 1 e la lunghezza della lista nel caso in cui e viene trovato, altrimenti restituisce 0. CercaPosizione( posizione i ) elemento Restituisce l elemento in posizione i-esima se i è un valore compreso tra 1 e la lunghezza della lista Inserisci( elemento e, posizione i ) Inserisce l elemento e all interno della lista L in posizione i Cancella( posizione i ) Cancella l elemento presente all interno della lista L nella posizione i 2.1 Implementazione mediante vettore La struttura dati lista indicizzata rappresenta l implementazione dell ADT lista mediante l uso di un vettore. Tale struttura dati richiede la definizione di un vettore V di dimensione prefissata, m, dove l'elemento i-esimo della lista, ai, occupa la posizione i-1. V L=(1, 6, 2, 23, 3) contatore=4 Gestiamo le posizioni libere del vettore mediante l utilizzo di una variabile, contatore, tramite la quale teniamo traccia della dimensione corrente della lista. Tale variabile assume inizialmente il valore 0, viene incrementata ad ogni operazione di inserimento e decrementata ad ogni operazione di cancellazione. Poiché la dimensione m del vettore deve essere prestabilita, la struttura dati lista indicizzata non consente la rappresentazione di liste contenenti più di m elementi, ovvero la struttura dati lista indicizzata è non dinamica.
3 Liste Pile e Code Pag. 3/18 L organizzazione delle informazioni contenute all interno della lista, così come dettate dalla struttura dati lista indicizzata, influenza ad ogni modo la realizzazione degli operatori dichiarati nella specifica. Vediamo come. Inserimento L'inserimento di un elemento nel vettore V alla posizione i richiede, prima di poter dar luogo all operazione, lo spostamento a destra di tutti gli elementi aventi indice maggiore o uguale ad i-1. In tal modo liberiamo la cella (i-1)-esima del vettore, all interno della quale possiamo memorizzare l elemento da inserire. V Contatore = 5 V Contatore = 5 V Contatore = 6 Figura 2.1 Inserimento in posizione 3 dell elemento 50 Nel caso pessimo, inserimento in prima posizione, il numero di passi da eseguire è dipendente dal numero di elementi presenti all interno della lista. Al crescere del numero degli elementi, crescono in maniera linearmente proporzionale il numero di spostamenti verso destra da eseguire. Diremo quindi che l operazione di inserimento richiede tempo linearmente proporzionale ad n. Cancellazione La cancellazione di un elemento in posizione i prevede, contrariamente all operazione di inserimento, uno spostamento a sinistra degli elementi aventi indice maggiore ad i-1. Nel caso pessimo, rappresentato dalla cancellazione in prima posizione, l operazione di cancellazione richiede un tempo proporzionale ad n.
4 Liste Pile e Code Pag. 4/18 CercaChiave La ricerca della chiave richiede la scansione, a partire dalla prima posizione, dell intero vettore. Pertanto, nel caso pessimo, elemento non presente, tale operazione richiede tempo proporzionale ad n. CercaPosizione Diamo luogo all operazione di CercaPosizione restituendo il valore presente alla posizione i-esima del vettore. Il costo di tale operazione è indipendente dal numero di elementi presenti all interno della lista. Il tempo di accesso alla cella i-esima è indipendente dal numero di elementi presenti nel vettore. Diremo in tal caso che l operazione di CercaPosizione richiede tempo costante. 2.2 Implementazione mediante puntatori La struttura dati lista concatenata specifica una organizzazione delle informazioni contenute all interno della lista alternativa a quella della struttura dati lista indicizzata. Necessitiamo in tal caso della definizione di un record contenente un campo chiave ed un campo che denomineremo successivo. chiave succ. Figura 2.2 Record Infine, realizziamo la lista definendo n record, uno per ogni elemento della lista, in modo tale che l'i-esimo record contenga all interno del campo chiave l'elemento ai della lista e all interno del campo successivo l'indirizzo del record contenente l elemento ai+1 della lista. Il campo successivo dell'ultimo record assume il valore NULL.
5 Liste Pile e Code Pag. 5/18 Gestiamo le dimensioni della lista utilizzando una variabile, Testa, che punta l elemento posto ad inizio lista. Tale variabile assume inizialmente il valore NULL. Testa a 1 a 2... a n null Figura 2.3 lista concatenata Il vantaggio di questo tipo di implementazione è dato dal fatto che non vi sono vincoli sulla dimensione della lista; l'unico vincolo è dato dalla quantità di memoria disponibile. Come già fatto per la struttura dati lista indicizzata, analizziamo ora come tale rappresentazione influenzi l implementazione degli operatori dell ADT Lista. Inserimento Per inserire un elemento nel vettore V alla posizione i occorre: creare (ovvero, allocare dinamicamente) un nuovo record; assegnare al campo chiave del nuovo record il valore dell elemento; scandire la lista sino a giungere al record i-esimo; assegnare al campo successivo del record precedente quello i-esimo l'indirizzo del nuovo record; assegnare al campo successivo del nuovo record l'indirizzo del record i-esimo. Poiché nel caso peggiore, inserimento in ultima posizione, occorre scandire l'intera lista, l'operazione di inserimento richiede tempo proporzionale alla dimensione corrente della lista. Testa a 1 a 2... a n null a Figura 2.4 Inserimento nella lista concatenata
6 Liste Pile e Code Pag. 6/18 Cancellazione La cancellazione necessita dell utilizzo di due puntatori, p e q. Ci si sposta con uno, p, sull elemento i-esimo e con l altro, q, sull elemento precedente a quello i-esimo. Dopodichè il campo successivo del record puntato da q sarà posto uguale al campo successivo del record puntato da p ed infine viene deallocato il record puntato da p. Testa q p a 1 a 2 a 3... a n null a 4 Figura 2.5 Cancellazione in una lista concatenata Poiché nel caso peggiore, cancellazione in ultima posizione, occorre scandire l'intera lista, l'operazione di cancellazione richiede tempo proporzionale alla dimensione corrente della lista. CercaChiave La ricerca della chiave necessita della scansione della lista con l utilizzo di un puntatore che salta da elemento in elemento seguendo l informazione memorizzata nel campo successivo di ogni record. Nel caso pessimo, chiave non esistente, l operazione di ricerca richiede tempo proporzionale alla dimensione della lista. CercaPosizione L operazione di ritorno dell elemento presente in posizione i-esima ha un tempo anch esso proporzionale alla dimensione della lista, poichè con l utilizzo di un puntatore che salta da elemento in elemento, seguendo le informazioni presenti nel campo successivo, dobbiamo dapprima posizionarci sul record i-esimo e poi ritornare il valore assunto dal campo chiave.
7 Liste Pile e Code Pag. 7/18 3. L ADT Lista Ordinata Una lista ordinata L è una sequenza di n elementi (a l,...,a n ) tratti da un insieme totalmente ordinato S. Gli elementi di una lista ordinata sono regolati dalla seguente relazione: a i a i+1 i {1, n-1 }. La presenza di un ordinamento degli elementi non rende applicabile l'operatore di inserimento in posizione arbitraria. Gli operatori tipici per una lista ordinata sono l operatore di ricerca, l operatore di inserimento e l operatore di cancellazione. Tipo di dato: Lista ordinata Insieme L di n elementi ( a l,...,a n ) estratti da un insieme S totalmente ordinato e tali che a i a i+1 i {1, n-1 } Operazioni: Cerca( elemento e ) posizione Cerca l elemento e all interno della lista L e restituisce l indice compreso tra 1 e la lunghezza della lista nel caso in cui e viene trovato, altrimenti restituisce 0 Inserisci( elemento e ) Inserisce l elemento e all interno della lista L Cancella( elemento e ) Cancella l elemento presente all interno della lista L 3.1 Implementazione mediante vettore L utilizzo della struttura dati lista indicizzata rappresenta la pratica più comune per la rappresentazione di una lista ordinata. In tal caso, similmente all ADT Lista, necessitiamo di un vettore V di dimensioni fisse, all interno del quale ospitiamo gli elementi della lista ordinata in ordine crescente. Una variabile contatore indicherà la dimensione corrente della lista. Vediamo come l utilizzo di una simile struttura dati influenzi l implementazione degli operatori di ricerca, inserimento e cancellazione.
8 Liste Pile e Code Pag. 8/18 Ricerca La ricerca per chiave avviene attraverso l algoritmo di ricerca binaria. Sfruttiamo la caratteristica di ordinamento degli elementi dell ADT dando luogo ai seguenti passi: o confronto: confrontiamo il valore da ricercare, k, con il valore, v, presente alla posizione centrale della porzione di vettore effettivamente utilizzata (mediana) se k = v, allora l'elemento è stato trovato se k < v allora ricerchiamo l'elemento ricorsivamente nella prima metà del vettore poiché esso contiene elementi minori di k. Ci disinteressiamo dell'altra metà dell'insieme se k > v allora ricerchiamo l'elemento ricorsivamente nella seconda metà del vettore poiché esso contiene solo elementi maggiori di k. Ci disinteressiamo anche in questo caso dell'altra metà dell'insieme Ricerca Binaria RicercaBinaria( elemento k, intero iniziovettore, intero finevettore ) { Lista L Vettore V se finevettore == iniziovettore allora { se V[iniziovettore]!= k allora elemento non trovato altrimenti elemento trovato } } mediana = (finevettore-iniziovettore)/2 se V[mediana] = k allora { elemento trovato } altrimenti { se V[mediana] >= k allora RicercaBinaria( k, iniziovettore, mediana-1 ) altrimenti RicercaBinaria( k, mediana+1, finevettore ) }
9 Liste Pile e Code Pag. 9/18 Inserimento Diamo luogo all operazione di inserimento mediante l esecuzione dei seguenti quattro passi: o ricerchiamo l'elemento contenente la chiave assegnata. Tale operazione restituisce un indice i che rappresenta la posizione che la chiave dovrebbe occupare; o eseguiamo uno Shift a destra degli elementi aventi indice maggiore di i; o inseriamo il nuovo elemento in posizione i; o incrementiamo la variabile contatore. Cancellazione L'operazione di cancellazione consiste di tre fasi: - ricerchiamo l'elemento contenente la chiave assegnata. Tale operazione restituisce un indice i che rappresenta la posizione che la chiave occupa; - operiamo lo Shift a sinistra degli elementi aventi indice maggiore di i; - decrementiamo la variabile contatore. E dimostrabile che se adoperiamo l algoritmo di ricerca binaria, l operazione di ricerca di un elemento in una lista ordinata richiede nel caso pessimo, elemento non trovato, un tempo logaritmico nel numero di elementi. Mentre, a causa delle operazioni di shift, sia l inserimento che la cancellazione richiedono nel caso pessimo, inserimento e cancellazione in prima posizione, un tempo lineare con il numero di elementi della lista.
10 Liste Pile e Code Pag. 10/18 4. Il tipo di dato astratto Pila Una pila è una collezione di elementi che ammette esclusivamente due operazioni: PUSH: inserimento di un elemento ad una estremità, detta sommità; POP: estrazione dell'elemento presente nella sommità. PUSH POP Elemento 3 Elemento 2 Elemento 1 Figura 4.1: pila Possiamo considerare una pila come una specializzazione dell ADT lista in cui l'ultimo elemento inserito è anche il primo ad essere estratto. Denominiamo con l acronimo LIFO (Last In First Out) la politica di gestione degli elementi di una pila. Tipo di dato: Operazioni: Pila Sequenza P di n elementi ( a l,...,a n ) estratti da un insieme S IsEmpty() result Restituisce true se P è vuota altrimenti restituisce false Push( elemento e ) Inserisce l elemento e in testa alla pila P Pop() elemento Restituisce l elemento in testa alla pila P
11 Liste Pile e Code Pag. 11/ Implementazione tramite vettore Possiamo rappresentare l ADT Pila mediante la struttura dati Lista Indicizzata. E una soluzione facilmente applicabile. Definiamo un vettore V, di dimensione prefissata, MAX, ed una variabile, Testa, che punta in testa alla pila. Assumiamo inoltre che quanto Testa è uguale al valore -1 allora la pila è vuota, mentre se Testa è uguale al valore MAX-1 il vettore è saturo: la pila non può ospitare alcun elemento. Testa = n n-1... MAX -1 a 1 a 2 a 3... a n Figura 4.2 Pila di n elementi rappresentata con vettori Operatore POP Diamo luogo alla operazione di estrazione, restituendo il valore memorizzato all interno della cella indicata dalla variabile Testa, V[Testa], e decrementando di una unità la variabile Testa. Operatore PUSH Diamo altresì luogo alla operazione di inserimento, incrementando prima il valore della variabile Testa e memorizzando all interno della cella indicata dalla variabile incrementata, V[Testa], il valore da inserire. Le operazioni di inserimento ed estrazione richiedono tempo costante. I numeri di passi da eseguire per implementare i due operatori è indipendente dal numero di elementi presenti all interno della pila.
12 Liste Pile e Code Pag. 12/ Implementazione tramite puntatori La struttura dati lista concatenata è un alternativa alla rappresentazione sopra descritta. La variabile di tipo puntatore, denominata Testa, rappresenta l ultimo elemento della pila. In tal caso la condizione di pila vuota è data da: Testa = NULL. Similmente alla rappresentazione mediante utilizzo dei vettori, questa implementazione è caratterizzata da tempi costanti sia per l'operazione di inserimento che per l operazione di estrazione. Inserimento Diamo luogo all'operazione di inserimento modificando la lista come di seguito raffigurato: Testa a1 a2 a3 a4 NULL PUSH Testa Testa Nuova chiave a1 a2 a3 a4 NULL Creiamo un nuovo record, poniamo il campo successivo uguale al valore assunto da Testa ed infine spostiamo Testa verso il nuovo elemento creato. Inserimento Pila Lista concatenata Push( elemento e) { Record r _ } alloca un nuovo record, r poni il campo valore di r uguale ad e, r valore=e poni il campo successivo di r uguale a Testa, r successivo=testa poni Testa uguale ad r, Testa=r
13 Liste Pile e Code Pag. 13/18 Estrazione Diamo luogo all operazione di estrazione modificando la lista come di seguito raffigurato: Creiamo un nuovo record, poniamo il campo successivo uguale al valore assunto da Testa ed infine spostiamo Testa verso il nuovo elemento creato. Estrazione Pila Lista concatenata Pop() elemento { Puntatore p _ } p = Testa Testa = Testa Successivo Dealloca p
14 Liste Pile e Code Pag. 14/18 5. Il tipo di dato astratto Coda Una coda è una collezione di elementi che ammette esclusivamente due operazioni: l'inserimento di un elemento ad una estremità, detta fine l'estrazione dell'elemento presente nell'altra estremità, detta inizio. Estrazione Inserimento Inizio Fine a 1 a 2 a 3... a n Figura 5.1 Coda Denominiamo la politica di gestione degli elementi di una coda con l acronimo FIFO, First In First Out. Tipo di dato: Coda Sequenza Q di n elementi ( a l,...,a n ) estratti da un insieme S Operazioni: IsEmpty() result Restituisce true se Q è vuota altrimenti restituisce false Inserisci( elemento e ) Inserisce l elemento e alla fine di Q Estrazione() elemento Restituisce l elemento posto all inizio di Q 5.1 Implementazione tramite vettore circolare Una coda è realizzabile attraverso l utilizzo della struttura dati vettore circolare. Quest ultimo rappresenta un tradizionale vettore di ampiezza prefissata, la cui caratteristica di circolarità è data dalla regola di incremento utilizzata per la scansione delle celle. Si da luogo a tale operazione utilizzando una variabile intera, index, incrementata secondo la formula: index = (index + 1) mod MAX, dove MAX è la dimensione del vettore. In tal modo index assume valori compresi tra zero e MAX-1.
15 Liste Pile e Code Pag. 15/18 Rappresentiamo la coda mediante vettore circolare definendo un vettore V di ampiezza MAX e due contatori, inizio e fine, che incrementiamo modulo MAX. Inizio farà riferimento alla cella del vettore che precede il primo elemento, fine farà riferimento alla cella del vettore che contiene l ultimo elemento. Inizio = (Inizio+1)mod MAX Fine = (Fine+1)mod MAX Inizio Fine a 1 a 1... a n MAX-1 Figura 5.2 Coda rappresentata con vettore circolare Possiamo pertanto definire quattro stati della coda: 1. Stato iniziale: inizio = fine = 0 2. Coda vuota: inizio = fine 3. Coda non vuota: inizio fine 4. Coda piena: (fine + 1 ) mod n = inizio Nota Una delle particolarità di questa rappresentazione è data dal fatto che non si avrà mai un riempimento fisico del vettore che si potrà riempire fino ad un massimo di MAX-1 elementi. Questo perché se inserissimo un elemento anche nella unica posizione che eventualmente rimarrebbe vuota non saremmo più in grado di distinguere quando la coda è piena e quando la coda è vuota. Implementiamo gli operatori di inserimento ed estrazione. Inserimento Diamo luogo all operazione di inserimento incrementando la variabile fine e memorizzando nella cella del vettore indicata da fine il valore da inserire. L operazione di inserimento ha un tempo di esecuzione costante.
16 Liste Pile e Code Pag. 16/18 Inserimento Coda Vettore Circolare Inserisci( elemento e) { Vettore V se ((fine+1) mod MAX) == inizio allora coda piena altrimenti fine = ( fine + 1 ) mod MAX V[fine] = e } _ Estrazione Diamo luogo all operazione di estrazione incrementando la variabile inizio e ritornando il valore memorizzato nella cella del vettore indicata da inizio. L operazione di estrazione ha un tempo di esecuzione costante. Estrazione Coda Vettore Circolare Estrazione() Elemento Vettore V se inizio = fine allora coda è vuota altrimenti inizio = ( inizio + 1 ) mod MAX ritorna V[inizio] _ 5.2 Implementazione tramite lista L utilizzo della struttura dati lista concatenata richiede l utilizzo di due variabili di tipo puntatore:inizio e fine. Esse faranno riferimento rispettivamente al primo ed all'ultimo elemento della coda. Inizio Fine a 1 a 2... a n null Figura Coda realizzata con lista concatenata
17 Liste Pile e Code Pag. 17/18 I quattro stati della coda sono pertanto: 1. Stato iniziale: inizio = fine = NULL 2. Coda vuota: inizio = NULL 3. Coda non vuota: inizio fine 4. Coda piena: Non applicabile, la struttura dati è dinamica Inserimento Diamo luogo all operazione di inserimento allocando un nuovo record, linkando quest ultimo al record puntato da fine ed infine spostando il puntatore fine verso l ultimo elemento inserito. L operazione di inserimento ha un tempo di esecuzione costante. Inserimento Coda Lista concatenata Inserisci(Elemento e) { Puntatore p _ } p = alloca record p chiave = e p next = NULL fine next = p fine = p Estrazione Diamo luogo all operazione di estrazione spostando il puntatore inizio e deallocando il record precedentemente puntato da inizio e contenente quindi il valore da estrarre. Estrazione Coda Lista concatenata Estrazione() Elemento { Puntatore p Elemento e _ se inizio = NULL allora coda è vuota altrimenti p = inizio inizio = inizio next e = p chiave dealloca p ritorna e
18 Liste Pile e Code Pag. 18/18 }
Struttura dati astratta Coda
CODE Struttura dati astratta Coda La coda o queue è una struttura dati astratta in cui l'inserimento e l estrazione sono consentite solo in specifiche posizioni; in particolare, l'inserimento è consentito
DettagliHeap e code di priorità
Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010
DettagliInsiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative.
Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Definizione
DettagliADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte)
ADT: Abstract Data Type I tipi di dati astratti (I parte) Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Scopo Livello di astrazione sui dati tale da mascherare completamente
DettagliContenitori: Pile e Code
Contenitori: Pile e Code D O T T. I N G. L E O N A R D O R I G U T I N I D I PA R T I M E N T O I N G E G N E R I A D E L L I N F O R M A Z I O N E U N I V E R S I T À D I S I E N A V I A R O M A 5 6 5
DettagliEsempio: rappresentare gli insiemi
Esempio: rappresentare gli insiemi Problema: rappresentare gli insiemi Vedremo che la scelta della rappresentazione per implementarli non è così ovvia come era stato per i numeri razionali In realtà ci
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliArray e liste. IASD a.a
Array e liste IASD a.a. 2015-16 Sequenze lineari n elementi a 0, a 1,..., a n 1 dove a j = (j + 1)-esimo elemento per 0 ij n 1. In una sequenza è importante l ordine degli elementi Consideriamo una sequenza
DettagliEsercitazione 6. Alberi binari di ricerca
Esercitazione 6 Alberi binari di ricerca Struttura base Rappresentabile attraverso una struttura dati concatenata in cui ogni nodo è un oggetto di tipo struttura Ogni nodo contiene: campo chiave (key)
DettagliLinguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA
Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi
DettagliAnalisi ammortizzata (Tarjan in 1985)
In questa lezione Analisi della complessità di una sequenza di operazioni di estrazione e inserimento in una tabella memorizzata su un array, usando l analisi ammortizzata. Analisi ammortizzata (Tarjan
DettagliArgomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili
Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto
DettagliIntroduzione agli Algoritmi ed alle Strutture Dati Anno Accademico 2015/2016 Appello 23/6/2016
1. Indicare quali delle seguenti affermazioni sono vere e quali sono false. a. n 3 = Θ (n 3log n ) b. n! = Ω(n n ) c. log n = Θ (log( n 2 )) d. n 3 =Ω(n) e. 9 log 3 n = Θ (n) 2. Si dimostri in modo formale
DettagliIl TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3
Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali
DettagliINDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
Dettaglilezione 9 min-heap binario Heap e Alberi posizionali generali
lezione 9 Heap e Alberi posizionali generali min-heap binario Un min-heap è un albero binario quasi completo in cui ogni nodo i diverso dalla radice soddisfa la seguente proprietà: il valore memorizzato
DettagliADT Coda con priorità
Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni
DettagliStruttura di dati lista concatenata
Struttura di dati lista concatenata Lista concatenata Consideriamo una nuova modalità di memorizzare i dati in cui l accesso non avviene più tramite un indice, che individua la posizione del dato nella
DettagliEsercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016
Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 7, 2016 Liste trabocco (Separate Chaining) Esercizio 1 [Libro 7.5] Un dizionario è realizzato con liste di trabocco.
DettagliProva di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
DettagliAlberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliCAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1
CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più
DettagliStrutture Dinamiche. Fondamenti di Informatica
Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
DettagliCAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE
CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore Il primo approccio alla risoluzione del problema del produttore/consumatore considera un buffer infinito presentato
DettagliAlberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
DettagliModulo 1 Concetti di base della Tecnologia dell Informazione
Modulo 1 Concetti di base della Tecnologia dell Informazione 1.0.1.1 1.0.1.2 1.0.1.3 Algoritmi Definizione di algoritmo e sua rappresentazione grafica Per algoritmo si intende un procedimento, che permette
DettagliSpecifica: la sintassi. Specifica: la semantica. Specifica: la semantica
Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi Che cos è un tipo di dato? Tutti i linguaggi di programmazione tipati forniscono tipi ed operatori predefiniti
DettagliLinguaggio C. Problemi di Ricerca e Ordinamento: Algoritmi e Complessità.
Linguaggio C Problemi di Ricerca e Ordinamento: Algoritmi e Complessità. 1 Complessità degli Algoritmi Si definisce Complessità di un Algoritmo C(A) la funzione dei parametri rilevanti per A che determina
DettagliStrutture di accesso ai dati: B + -tree
Strutture di accesso ai dati: B + -tree A L B E R T O B E L U S S I S E C O N D A P A R T E A N N O A C C A D E M I C O 2 0 0 9-2 0 0 Osservazione Quando l indice aumenta di dimensioni, non può risiedere
DettagliAnalisi asintotica della complessità di tempo degli algoritmi
Analisi asintotica della complessità di tempo degli algoritmi Due esempi di funzioni di Python: 1. nel primo mettiamo in evidenza l importanza di una buona organizzazione dei dati in memoria, cioè di una
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 8 Code con priorità: Heap binomiali Riepilogo Array non ord. Array ordinato Lista non ordinata Lista ordinata Find Min Insert Delete DelMin Incr. Key Decr. Key merge
DettagliPer semplicità eliminiamo le ripetizioni nell'albero.
Albero binario di ricerca 20 40 100 95 Un albero binario di ricerca é un albero binario in cui ogni nodo ha un etichetta minore o uguale a quelle dei nodi nel sottoalbero radicato nel figlio destro e maggiore
DettagliGrafi: visita generica
.. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima
DettagliGestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi
Fondamenti di Informatica T-1 modulo 2 Laboratorio 10: preparazione alla prova d esame 1 Esercizio 1 - Gestione degli impegni Gli impegni giornalieri dei dipendenti di un azienda devono essere aggiornati
DettagliEsercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:
Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati
Dettagli22 - Strutture Dati (Java Collections Framework)
22 - Strutture Dati (Java Collections Framework) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliInformatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
DettagliAlgoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
DettagliMassimo Benerecetti Tabelle Hash: gestione delle collisioni
Massimo Benerecetti Tabelle Hash: gestione delle collisioni # Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Algoritmi e Strutture Dati I Email Docente: bene@na.infn.it A.A. 2009-2010
DettagliIl linguaggio assembly
Il linguaggio assembly Introduzione al linguaggio macchina Indice Che cos è l assembly Elementi del linguaggio Memoria di programma Registri interni e di I/O Registri particolari Rappresentazione dell
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliAlgoritmi e Strutture Dati
Alberi AVL Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 26/7 Alberi AVL Definizione (bilanciamento in altezza): un albero è bilanciato
DettagliPermutazioni. 1 Introduzione
Permutazioni 1 Introduzione Una permutazione su un insieme di n elementi (di solito {1, 2,...,n}) è una funzione biiettiva dall insieme in sé. In parole povere, è una regola che a ogni elemento dell insieme,
DettagliAlgoritmi e Strutture Dati
schifano@fe.infn.it Laurea di Informatica - Università di Ferrara 2011-2012 [1] I Dizionari I dizionari sono un caso particolare di insieme in cui sono possibili le seguenti operazioni: verificare l appartenenza
DettagliORDINE DI INSERIMENTO DELLE CHIAVI <35 >35
LIBRERIA WEB Alberi binari 3. Alberi binari e tecniche di hashing per la gestione delle chiavi Gli indici di un file possono essere trattati in modo efficiente con tecniche che si basano sull uso di alberi
DettagliUNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi
Dettaglialberi binari di ricerca (BST)
Le tabelle di simboli e gli alberi binari di ricerca (BT) ianpiero abodi e Paolo amurati Dip. utomatica e Informatica Politecnico di Torino Tabelle di simboli Definizione: una tabella di simboli è una
DettagliFondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
DettagliAlgoritmi e strutture dati
Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 4 Implementazioni delle partizioni Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio 2016.
DettagliLezione 6 Le pile. Informatica. 28 Aprile 2016
Lezione 6 Le pile Informatica 28 Aprile 2016 Il porto di Anversa Il terminal del porto merci di Anversa usa delle gru a cavaliere per movimentare i container: I container arrivano per nave e vengono messi
DettagliAbstact Data Type. Abstact Data Type. Pubblico e privato. Struttura di un ADT
Abstact Data Type 2 Abstact Data Type Ver. 2.4 ADT, definisce un concetto astratto e il suo comportamento Viene utilizzato come una scatola nera (oggetto) di cui è visibile solo che cosa fa e non come
DettagliNell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:
Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi
DettagliEsercizi Capitolo 7 - Hash
Esercizi Capitolo 7 - Hash Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive
DettagliArchitettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri mejri@elet.polimi.it Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
DettagliImplementazione di Liste puntate
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Implementazione di Liste puntate 2 1 Indice Liste puntate semplici: Gli elementi sono logicamente
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Lorenzo Dusty Costa Federico Paolo Kircheis 30 Novembre 2011 1 Introduzione alle memoria dinamica Uno degli inconvenienti che spesso si incontrano nell'uso degli array
DettagliIntroduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard
Introduzione al Metodo del Simplesso Giacomo Zambelli 1 Soluzioni di base e problemi in forma standard Consideriamo il seguente problema di programmazione lineare (PL), relativo all esempio di produzione
DettagliDIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. La ricorsione
INFORMATICA B Ingegneria Elettrica La ricorsione Ricorsione Che cos è la ricorsione? Un sottoprogramma P richiama se stesso (ricorsione diretta) Un sottoprogramma P richiama un altro sottoprogramma Q che
DettagliFile System. Capitolo 13
Capitolo 13 File System Problema 1: Le copie di un file possono essere inconsistenti, quindi per sbaglio si potrebbero leggere dati vecchi. È meglio creare un link a data nella home di ogni utente. Tuttavia,
DettagliAlgoritmi e Principi dell Informatica
Algoritmi e Principi dell Informatica Appello del 20 Febbraio 2012 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2h e 30 Chi deve sostenere solo il modulo di Informatica
DettagliProgrammazione I - corso B a.a prof. Viviana Bono
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 15 Algoritmi su array: selection sort, insertion sort, fusione
DettagliSoluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h>
Ricerca di un elemento in vettore Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall utente,
DettagliCorso di Laurea in Informatica Modulo di Laboratorio di Programmazione I (a.a ) Docente: Prof. M. Nesi
Corso di Laurea in Informatica Modulo di Laboratorio di Programmazione I (a.a. 2009-10) Docente: Prof. M. Nesi Esercizi su Algoritmi e Diagrammi di Flusso (Versione preliminare) Dati i seguenti problemi,
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
DettagliEsercizi C su array e matrici
Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]
DettagliUn esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem
Un esempio: l ADT Dizionario (mutabile) Algoritmi e Laboratorio a.a. 2006-07 Lezioni Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Parte 19-D Alberi
DettagliOrdinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
DettagliL'allocazione dinamica della memoria
L'allocazione dinamica della memoria Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino I puntatori Le variabili di tipo puntatore permettono di accedere alla memoria
DettagliI Tipi di Dato Astratto
I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati
DettagliGrafi pesati Minimo albero ricoprente
Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
DettagliFormule e funzioni. Manuale d uso
EXCEL Modulo 2 Formule e funzioni Manuale d uso Formule (1/2) Le formule sono necessarie per eseguire calcoli e utilizzano i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno
DettagliEsempio di Prova Scritta
Esempio di Prova Scritta La prova scritta è composta da alcuni esercizi per un totale di 10 punti (durata:circa 1h15 ). Le tipologie di esercizi possibili comprendono:! sintesi di una funzione ricorsiva/iterativa,
DettagliLa rappresentazione dell algoritmo Diagrammi di flusso
La rappresentazione dell algoritmo Diagrammi di flusso Forme di rappresentazione Ritornando al problema dell addizione di due numeri interi, la maestra non fa altro che codificare l algoritmo utilizzando
Dettagli3. Matrici e algebra lineare in MATLAB
3. Matrici e algebra lineare in MATLAB Riferimenti bibliografici Getting Started with MATLAB, Version 7, The MathWorks, www.mathworks.com (Capitolo 2) Mathematics, Version 7, The MathWorks, www.mathworks.com
DettagliFILE E INDICI Architettura DBMS
FILE E INDICI Architettura DBMS Giorgio Giacinto 2010 Database 2 Dati su dispositivi di memorizzazione esterni! Dischi! si può leggere qualunque pagina a costo medio fisso! Nastri! si possono leggere le
DettagliPuntatori in C Lucidi della Pof.ssa Pazienza
Puntatori in C Lucidi della Pof.ssa Pazienza http://www.uniroma2.it/didattica/foi2/ Puntatori L operatore di indirizzo & Indirizzi, puntatori Aritmetica dei puntatori L operatore di dereferenziazione *
DettagliCesare Rota. Programmare con C++
Cesare Rota Programmare con C++ Questo fascicolo deve essere allegato al volume Programmare con C++ di Cesare Rota ISBN 978-88-203-4248-7, ne è parte integrante e non può essere venduto separatamente EDITORE
DettagliNote sull implementazione in virgola fissa di filtri numerici
Note sull implementazione in virgola fissa di filtri numerici 4 settembre 2006 1 Introduction Nonostante al giorno d oggi i processori con aritmetica in virgola mobili siano molto comuni, esistono contesti
DettagliInformatica e Bioinformatica: Algoritmi
Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione
DettagliCosto di esecuzione. Quanto costa? Spazio. Spazio e tempo. Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche
Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche Quanto costa? Prof. Stefano Guerrini guerrini@di.uniroma1.it Programmazione II (can. P-Z) A.A. 2005-06 Cosa contribuisce
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
DettagliAlgoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet francesc
Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Tabelle hash Una tabella hash (in inglese hash
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliProf.Ing.S.Cavalieri Puntatori e Heap in Linguaggio C. Puntatori e Heap
Puntatori e Heap 1.Cosa Sono i Puntatori? I puntatori sono fondamentalmente delle variabili, come quelle intere, reali e carattere. Tuttavia, l unica differenza consiste nel fatto che essi non contengono
DettagliLaboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso
Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso
DettagliListini Dinamici. Indice degli argomenti
Indice degli argomenti Premessa Impostazione delle tabelle utili per la creazione di un listino dinamico Creazione di un Listino Dinamico Utilizzo in Gestione Documenti, Ordini Clienti e Movimenti di Magazzino
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Alberi binari di ricerca 2 1 Alberi L albero è un tipo astratto di dato utilizzato per rappresentare
DettagliI tipi di dato astratti
I tipi di dato astratti.0 I tipi di dato astratti c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 001/00.0 0 I tipi di dato astratti La nozione di tipo di dato
DettagliEsercitazione sui grafi di precedenza, fork/join, cobegin/coend.
Esercitazione sui grafi di precedenza, fork/join, co/coend. Esercizio 1. Realizzare mediante il costrutto fork/join il seguente grafo di precedenze. Risposta. cont5 := 2; cont6 := 3; cont7 := 2; S1; fork(l1);
DettagliLaboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L
DettagliDefinire una chiave primaria. Microsoft Access. Definire una chiave primaria. Definire una chiave primaria. Definire una chiave primaria
Microsoft Access Chiavi, struttura delle tabelle 1. Portare la tabella in Visualizzazione struttura Selezionare la tabella sulla quale si desidera intervenire nella finestra del database Poi: Fare clic
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Gli algoritmi di base sul tipo array: ordinamento e ricerca Claudio De Stefano - Corso di Fondamenti di Informatica 1 Algoritmi di ordinamento gli algoritmi si differenziano
DettagliTracce. 1. Data una lista di elementi di tipo intero, implementare in C++ le seguenti funzioni
Algoritmi e Strutture Dati Tracce 1. Data una lista di elementi di tipo intero, implementare in C++ le seguenti funzioni int freq(list &L, int k): restituisce il numero di occorrenze dei multipli
DettagliListe Doppiamente Collegate
Liste Doppiamente Coegate Consideriamo una ista sempicemente coegata Testa dea ista 3, 5, 20 Aggiungiamo ad ogni eemento un puntatore a eemento precedente Chiudiamo, in modo circoare, a ista (da notare
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Mappe Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 1 Mappe: definizione Tabelle a due colonne:
Dettagli