Struttura dati astratta Coda
|
|
|
- Elvira Brescia
- 9 anni fa
- Просмотров:
Транскрипт
1 CODE
2 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 solo ad un estremo, detto rear (ultimo), e l estrazione è consentita solo all'altro estremo, detto front (primo). Questo tipo di struttura dati è molto utilizzata in informatica, ad esempio nella gestione delle operazioni da eseguire da parte di un sistema operativo, ed è fondamentale nelle telecomunicazioni, in particolare nelle reti a commutazione di pacchetto, dove descrive la gestione dei pacchetti in attesa di essere trasmessi su un collegamento. Questa gestione sfrutta una politica di accesso ai dati di tipo FIFO (First In First Out), in quanto il primo elemento inserito è anche il primo ad essere elaborato (estratto). Sia data una coda composta dagli elementi a 1, a 2, a 3,., a n e si supponga che la posizione rear sia rappresentata dalla posizione dell elemento a n. L'inserimento di un elemento x produce la nuova coda a 1, a 2, a 3,., a n, x. L elemento di posizione rear diviene x. L estrazione di un elemento della coda si riferisce all elemento di posizione front ossia a 1 ; dopo l operazione di estrazione la coda diviene a 2, a 3,., a n, x.
3 ADT generici: la Coda Tipo Coda Dati: una sequenza S di n elementi Operazioni: isempty() -> result restituisce true se S è vuota, false altrimenti EnQueue(elem e) aggiunge e come ultimo elemento di S DeQueue() -> elem toglie da S il primo elemento e lo restituisce first() -> elem restituisce il primo elemento di S (senza modificare S)
4 Esempio Questa sequenza mostra il risultato di una serie di operazioni indicate nella colonna di sinistra (dall alto verso il basso), dove una lettera indica un operazione di inserimento in coda (EnQueue) e un asterisco indica un operazione di estrazione dalla coda (DeQueue). Ogni riga mostra l operazione, la lettera restituita dalla DeQueue e il contenuto della coda ordinato dall elemento inserito meno di recente a quello inserito più di recente, da sinistra a destra
5 Code Come già detto per gli altri ADT, la realizzazione indicizzata prevede che la sequenzialità degli elementi della pila venga rappresentata dalla adiacenza delle locazioni di memoria utilizzate per contenere ciascun elemento. Nella rappresentazione collegata, la sequenzialità degli elementi è mantenuta tramite i puntatori che collegano le varie strutture informative. I pro e i contro sono quelli già studiati.
6 IMPLEMENTAZIONE CHE SFRUTTA LA LIBRERIA SULLE LISTE (STRUTTURE COLLEGATE)
7 Rappresentazione collegata tramite puntatori front.... rear front.... nuovo elemento inserimento rear front.... cancellazione rear
8 Code /* prima di includere questo file si deve dichiarare il tipo degli elementi da inserire nella coda, mediante una dichiarazione typedef... TipoElemCoda; */ /* definizione del tipo coda */ struct StructCoda { TipoLista primo, ultimo; }; typedef struct StructCoda TipoCoda; /* inclusione del file contenente la dichiarazione del tipo TipoLista e delle operazioni primitive sulle liste */ #include "liste.h"
9 Code /* implementazione delle operazioni primitive sulle code */ void InitCoda(TipoCoda *c) /* inizializza la coda c ponendo a NULL i puntatori al primo e all'ultimo elemento della coda */ { InitLista(&c->primo); InitLista(&c->ultimo); } /* InitCoda */ bool TestCodaVuota(TipoCoda c) /* restituisce TRUE se la coda c è vuota, FALSE altrimenti */ { return (TestListaVuota(c.primo)); } /* TestCodaVuota */
10 Code /* implementazione delle operazioni primitive sulle code */ void InizioCoda(TipoCoda c, TipoElemCoda *v) /* restituisce in v il primo elemento della coda c senza modificare c */ { TestaLista(c.primo, v); } /* InizioCoda */
11 Code /* implementazione delle operazioni primitive sulle code */ void InCoda(TipoCoda *c, TipoElemCoda v) /* inserisce l'elemento v all'ultimo posto della coda c */ { if (TestCodaVuota(*c)) { /* c e' vuota: l'elemento v sarà sia il primo che l'ultimo elemento della coda */ c->primo = malloc(sizeof(tiponodolista)); c->ultimo = c->primo; } else { c->ultimo->next = malloc(sizeof(tiponodolista)); c->ultimo = c->ultimo->next; } c->ultimo->info = v; c->ultimo->next = NULL; } /* InCoda */ Se avessi avuto a disposizione fra le funzioni delle liste una funzione per l inserimento di un elemento in fondo alla lista, l avrei potuta utilizzare; la sua complessità sarebbe però stata dell ordine di n, mentre questa ha complessità costante pari a 1.
12 Code /* implementazione delle operazioni primitive sulle code */ void OutCoda(TipoCoda *c, TipoElemCoda *v) /* elimina il primo nodo della coda c, restituendone il valore in v */ { InizioCoda(*c, v); /* copia il valore del primo elemento di c in v (se esiste) */ CancellaPrimoLista(&c->primo); /* elimina il primo element di c (se esiste) */ /* se l'elemento eliminato era l'unico elemento presente nella coda, allora si pone a NULL anche il puntatore all'ultimo elemento */ if (c->primo == NULL) c->ultimo = NULL; } /* OutCoda */
13 IMPLEMENTAZIONE INDICIZZATA
14 Code Possibili implementazioni concrete indicizzate: Tengo un solo indice della coda e la testa sempre in posizione 0 (implementazione sequenziale) Tengo due indici, (implementazione sequenziale) si incrementano sempre (spreco memoria) e prima o poi esaurisco lo spazio disponibile; se l applicazione lo permette, posso regolarmente riposizionare i due indici a 1 Tengo due indici: implementazione circolare. In momenti differenti la coda occupa posizioni differenti dell anello; problema: dimensione massima dell anello (overflow)
15 Code: rappresentazione sequenziale La rappresentazione sequenziale di un ADT Coda con vettore può essere realizzata utilizzando due variabili, primo e ultimo, che indicano rispettivamente la posizione del primo e dell'ultimo elemento della coda. Inizialmente, quando la coda è vuota si assume che primo=ultimo=-1. front rear N-1 rear front Prima dell'inserimento, ultimo corrisponde all'ultimo elemento del vettore. Il nuovo elemento può essere inserito nella prima posizione libera del vettore, ottenuta incrementando rear nella seguente maniera: rear N rear=(rear+1) % N, //N = dimensione vettore
16 Code: rappresentazione sequenziale L'inserimento di un elemento è possibile solo se la coda non è piena. Il valore di ultimo non può essere più incrementato per inserire un nuovo elemento. La condizione di coda piena è: rear front N front rear N primo = = (ultimo+1)%n coda piena Per quanto riguarda la cancellazione dell'elemento di posizione primo, essa viene realizzata incrementando la variabile primo. Se primo e ultimo sono coincidenti, significa che la coda possiede un solo elemento, cioè quello che deve essere eliminato. Ciò significa che dopo la cancellazione la coda rimarrà vuota.
17 Code: rappresentazione sequenziale L incremento della variabile primo deve avvenire in modo circolare, analogamente a quanto visto per la variabile ultimo: front rear front N-1 13 primo=(primo+1) % N, dove N è la dimensione del vettore
18 Code: rappresentazione sequenziale 2 front 4 rear front rear
19 Code sequenziali /* prima di includere questo file si deve dichiarare: (i) la lunghezza massima della coda; (ii) il tipo degli elementi da inserire nella coda. Questo viene realizzato mediante le seguenti dichiarazioni: #define MaxCoda... typedef... TipoElemCoda; coda primo ultimo */ typedef int TipoPosCoda; struct StructCoda { TipoElemCoda coda[maxcoda]; TipoPosCoda primo, ultimo; }; typedef struct StructCoda TipoCoda;
20 Code sequenziali /* implementazione delle operazioni primitive sulle code */ void InitCoda(TipoCoda *c) /* inizializza la coda c ponendo a -1 i puntatori al primo e all'ultimo elemento della coda */ { c->primo = -1; c->ultimo = -1; } /* InitCoda */ bool TestCodaVuota(TipoCoda c) /* restituisce TRUE se la coda c è vuota, FALSE altrimenti */ { return (c.primo == -1); } /* TestCodaVuota */
21 Code sequenziali /* implementazione delle operazioni primitive sulle code */ void InizioCoda(TipoCoda c, TipoElemCoda *v) /* restituisce in v il primo elemento della coda c senza modificare c */ { if (TestCodaVuota(c)) printf("errore: CODA VUOTA\n"); else *v = c.coda[c.primo]; } /* InizioCoda */ bool TestCodaPiena(TipoCoda c) /* restituisce TRUE se la coda c e' piena, FALSE altrimenti */ { if ((c.primo - c.ultimo == 1) ((c.ultimo - c.primo) == (MaxCoda-1))) return TRUE; else return FALSE; } /* TestCodaPiena */
22 Code sequenziali /* implementazione delle operazioni primitive sulle code */ void InCoda(TipoCoda *c, TipoElemCoda v) /* inserisce l'elemento v all'ultimo posto della coda c */ { if (TestCodaPiena(*c)) printf("errore: CODA PIENA\n"); else { /* posizionamento indice ultimo alla successiva posizione libera */ if (c->primo == -1) { /* c vuota: l'elemento da inserire sarà sia il primo che l'ultimo elemento di c */ c->ultimo = 0; c->primo = 0; } else /* c non vuota: cambia solo il puntatore all'ultimo elemento */ c->ultimo = (c->ultimo + 1) % MaxCoda; /* assegnazione di v all'ultimo elemento della coda */ c->coda[c->ultimo] = v; } } /* InCoda */
23 Code sequenziali /* implementazione delle operazioni primitive sulle code */ void OutCoda(TipoCoda *c, TipoElemCoda *v) /* elimina il primo record della coda c, restituendone il valore in v */ { if (TestCodaVuota(*c)) printf("errore: CODA VUOTA\n"); else { *v = c->coda[c->primo]; /* se l'elemento eliminato era l'unico elemento presente nella coda, allora si pone a -1 anche il puntatore all'ultimo elemento */ if (c->primo == c->ultimo) { c->ultimo = -1; c->primo = -1; } else /* c non vuota: cambia solo il puntatore al primo elemento */ c->primo = (c->primo + 1) % MaxCoda; } } /* OutCoda */
24 Code sequenziali Esercizio: Simulare l attività di un aeroporto con 1 sola pista. In ogni momento o si fa decollare o si fa atterrare un aereo. Gli aerei pronti al decollo o all atterraggio arrivano in momenti casuali: Pista vuota Un aereo sta atterrando o partendo Ci possono essere altri aerei in entrambe le code Diamo precedenza agli atterraggi, cioè un aereo decolla solo se la coda di atterraggio risulta vuota
PILE E CODE. Pile (stack):
PILE E CODE Sono tipi di dato che consentono di rappresentare sequenze di elementi in cui gli inserimenti e le cancellazioni sono eseguiti con particolari modalita` (politiche o discipline). Pile (stack):
La struttura dati CODA
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati CODA Pietro Di Lena - [email protected] Introduzione Una coda (o queue) è una struttura dati astratta
Strutture 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));
Strutture dati dinamiche in C (II)
Strutture dati dinamiche in C (II) Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi [email protected] Sommario Le liste concatenate (ancora ma in modo più formale) L
Liste con sentinella. intlist *createlist(void){ intlist *q = malloc(sizeof(intlist)); if(!q) { exit(-1); } q->next = q->prev = q; return q; }
Liste con sentinella Un ulteriore semplificazione delle operazioni sulle liste si ottiene utilizzando un elemento sentinella (dummy) che non contiene informazione, ma serve a segnalare la fine e l inizio
Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list
Esercitazione: Implementazione in linguaggio C dell ADT Stack con l utilizzo di linked list Laboratorio di Programmazione Introduzione un ADT (Abstract Data Type) è un modello (formale) che generalizza
I 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
Contenitori: 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
Grafi: 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
Laboratorio di Informatica
Liste semplici (semplicemente linkate) Una lista semplice e costituita da nodi Laboratorio di Informatica 7. Strutture complesse di dati in C++ Ogni nodo e una struttura che contiene : Dati Un riferimento
Informatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
Alberi ed Alberi Binari
Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,
Alberi 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
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
Questa soluzione va contemplata quando le lunghezze stimate dalle liste usate sono significativamente maggiori delle dimensioni di un elemento.
Un ulteriore semplificazione si ottiene utilizzando un elemento sentinella (dummy) che non contiene informazione, ma serve a segnalare la fine (e l inizio) di una lista. Questa soluzione va contemplata
Rappresentazione di liste mediante puntatori in linguaggio C
Rappresentazione di liste mediante puntatori in linguaggio C Specifica del tipo degli elementi typedef... TipoElemLista; struct StructLista TipoElemLista key; struct StructLista *next; ; typedef struct
4 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
Heap 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
Gestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
Linguaggio C. Esercizio 1
Linguaggio C Esercizi su puntatori e liste Walter Didimo (e-mail:[email protected]) supplemento al Corso di Calcolatori Elettronici (Riccardo Torlone) 1 Esercizio 1 Siano p e q due puntatori a variabili
Per 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
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
Il tipo di dato astratto Pila
Il tipo di dato astratto Pila Il tipo di dato Pila Una pila è una sequenza di elementi (tutti dello stesso tipo) in cui l inserimento e l eliminazione di elementi avvengono secondo la regola seguente:
Esercitazione 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)
ADT: 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
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
Note per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
Programmazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 6 - Liste Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
In questa lezione Strutture dati elementari: Pila Coda
In questa lezione Strutture dati elementari: Pila Coda 1 strutture dati (astratte) Una struttura dati astratti consiste di uno o più insiemi con delle operazioni che li modificano (insiemi dinamici). Le
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 12 ADT: Lista, Pila, Coda A. Miola Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti!Tipo
Specifica: 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
Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
lezione 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
L Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania [email protected] http://www.diit.unict.it/users/mpalesi Sommario Questo documento
Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco.
Alberi Alberi Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo Fosco Dora Drogo Frodo Dudo Daisy Alberi Gli alberi sono una generalizzazione
ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.
3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il
Esempio 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,
I PUNTATORI E LE STRUTTURE DATI DINAMICHE. Cosimo Laneve/Ivan Lanese
I PUNTATORI E LE STRUTTURE DATI DINAMICHE Cosimo Laneve/Ivan Lanese argomenti 1. dichiarazioni di puntatori 2. le operazione su puntatori (NULL, new, delete, &, *) 3. puntatori passati come parametri e
Esercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
Puntatori a Funzioni e Callback. Massimo Benerecetti
Puntatori a Funzioni e Callback Massimo Benerecetti Puntatori a Funzione Un «puntatore a funzione» è un puntatore che punta all indirizzo di memoria in cui è contenuto il codice eseguibile di una funzione.
SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE
SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software
Corso di Fondamenti di Informatica (M-Z)
Corso di Fondamenti di Informatica (M-Z) Avvertenze Consegnare solo fogli formato A4. Scrivere su un solo lato (no fronte retro) In ordine di preferenza usare inchiostro nero, matita, inchiostro blu. In
Esercitazione 12. Esercizi di Ricapitolazione
Esercitazione 12 Esercizi di Ricapitolazione Esercizio Scrivere un programma che, dato un numero intero positivo, stampa la sua rappresentazione binaria. ALGORITMO Scriviamo una procedura stampa_bin che,
Architettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri [email protected] Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: [email protected] sito: users.iol.it/genna18 Risoluzione di un problema Dato
Appello di Informatica B
Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova
Scrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
Gestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - [email protected] A pessimistic programmer sees the array as half empty.
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti
I puntatori e l allocazione dinamica di memoria. Esercizi risolti
I puntatori e l allocazione dinamica di memoria Esercizi risolti 1 Esercizio Si vuole realizzare un tipo struct, utilizzato per informazioni su operazioni di vendita, avente i seguenti campi: codice: numero
INDICI 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
Stringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche
Fondamenti di Informatica T-1 modulo 2 Laboratorio 04: stringhe 1 Stringhe In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche terminatore
Fondamenti di Informatica T1 Mappe
Fondamenti di Informatica T1 Mappe Tutor Melissa Licciardello [email protected] Melissa Licciardello Fondamenti di Informatica T1 1 / 16 Mappe Matrice N x 2 : Gli elementi della prima colonna,
Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
Esercizio 1 Liste: calcolo perimetro di un poligono
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di
Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
Tracce. 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
Strutture 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
Laboratorio di Algoritmi e Strutture Dati
Realizzazione di Liste Laboratorio di Algoritmi e Strutture Dati Domenico Redavid [email protected] Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di Bari
