Rappresentazione di liste mediante puntatori in linguaggio C
|
|
|
- Ortensia Neri
- 9 anni fa
- Visualizzazioni
Transcript
1 Rappresentazione di liste mediante puntatori in linguaggio C Specifica del tipo degli elementi typedef... TipoElemLista; struct StructLista TipoElemLista key; struct StructLista *next; ; typedef struct StructLista TipoNodoLista; typedef TipoNodoLista *TipoLista; key contiene l elemento della lista next contiene il puntatore alla struttura che rappresenta l elemento successivo Una lista vuota è rappresentata dal puntatore NULL, una lista non vuota è rappresentata dal puntatore al suo elemento iniziale Eserc-III-19
2 Implementazione di operazioni elementari Inizializzazione (la variabile lis è un puntatore doppio) void InitLista(TipoLista *lis) *lis = NULL; Inserimento di un elemento in testa /* pseudo-code like */ TipoLista Inserisci(TipoLista lis, TipoLista nodo) nodo->next = lis; return nodo; /*free-style */ void InserisciTestaLista(TipoLista *lis, TipoElemLista elem) TipoLista paux; paux = malloc(sizeof(tiponodolista)); paux->key = elem; paux->next = *lis; *lis = paux; Eserc-III-20
3 Implementazione di operazioni elementari Inserimento di un elemento in testa non distruttivo TipoLista InserisciTestaListaND(TipoLista *lis, TipoElemLista elem) TipoLista paux; paux = malloc(sizeof(tiponodolista)); paux->info = elem; paux->next = *lis; return paux; Test di lista vuota bool TestListaVuota(TipoLista lis) return (lis == NULL); Restituzione dell elemento in testa void TestaLista(TipoLista lis, TipoElemLista *elem) if (lis!= NULL) *elem = lis->info; Eserc-III-21
4 Resto e Resto non distruttivo Implementazione di operazioni elementari void RestoLista(TipoLista *lis) if (*lis!= NULL) *lis = (*lis)->next; TipoLista RestoListaND(TipoLista *lis) TipoLista paux; if (*lis!= NULL) paux = (*lis)->next; else paux = NULL; return paux; Eserc-III-22
5 Rimozione del primo elemento Implementazione di operazioni elementari void CancellaPrimoLista(TipoLista *lis) TipoLista paux; if (*lis!= NULL) paux = *lis; *lis = (*lis)->next; free(paux); Tutte le funzioni distruttive modificano la lista su cui operiamo e quindi per mantenere una lista integra operiamo su una copia Esigenze del problema sono determinanti Eserc-III-23
6 Copia lista Provate a farla per esercizio. Funzioni supplementari void CopiaLista(TipoLista lis, TipoLista *copia); Inserire in coda e stampare in ordine inverso void InserisciCodaLista(TipoLista *lis, TipoElemLista elem) TipoLista ultimo; TipoLista paux; paux = malloc(sizeof(tiponodolista)); paux->info = elem; paux->next = NULL; if (*lis == NULL) *lis = paux; else ultimo = *lis; while (ultimo->next!= NULL) ultimo = ultimo->next; ultimo->next = paux; Eserc-III-24
7 void StampaListaInversaRic(TipoLista lis) TipoLista suc; suc = lis; if (suc!= NULL) TipoElemLista x; x = suc->info; suc = (suc)->next; StampaListaInversaRic(&suc); printf(" %d ",x); Calcola la lunghezza di una lista (Fate la versione ricorsiva per esercizio) int LunghezzaLista(TipoLista lis) int length=0; TipoLista papp=lis; while (papp!= NULL) length++; papp = papp->next; return length; Eserc-III-25
8 Reverse ricorsivo void List_Invert_Ric(TipoLista *lis) TipoLista papp; if (*lis!= NULL) int appo = (*lis)->info; RestoLista(lis); List_Invert_Ric(lis); InserisciCodaLista(lis, appo); La lista viene distrutta e ricostruita. Non è necessario lavorare su una copia. IN GENERALE: Uso della ricorsione è più semplice da un punto di vista concettuale Eserc-III-26
9 Esercizio Date n liste collegate contenenti m interi distinti e un intero x, scrivere lo pseudo-codice di una funzione che conta le occorrenze di x nelle n liste. Strutture dati utilizzate: Una lista L che contiene i puntatori alle n liste e n liste contenenti gli m interi. L algoritmo prevede che: PROBLEMA(L,x) occ <- 0 conto le occorrenze nelle singole liste e le sommo in occ ritorno il valore della variabile occ Devo scorrere L e per ogni suo elemento conto le occorrenze di x nella lista corrispondente PROBLEMA(L,x) occ <- 0 WHILE (L <> NIL) occ <- occ + (calcolo le occorrenze di x nella lista puntata dall elemento corrente di L) L <- NEXT[L] ritorno il valore della variabile occ Eserc-III-27
10 Esercizio mi serve una funzione che conti le occorrenze di x in una lista di interi CALCOLAOCCORRENZE(L,x) cont <- 0 WHILE (L <> NIL) IF (INFO[L] = x) THEN cont <- cont + 1 L <- NEXT[L] RETURN cont quindi lo pseudo-codice di PROBLEMA diventa: PROBLEMA(L,x) occ <- 0 WHILE (L <> NIL) occ <- occ + CALCOLAOCCORRENZE(PINFO[L],x) L <- NEXT[L] RETURN occ Eserc-III-28
11 Variazione sul tema Se le n liste fossero ordinate (<), avremmo modo di rendere più efficiente il nostro algoritmo? Se si, come? Eserc-III-29
12 Variazione sul tema Se le n liste fossero ordinate (<), avremmo modo di rendere più efficiente il nostro algoritmo? Se si, come? Sapendo che gli interi sono ordinati possiamo aggiungere una condizione alla ricerca in CALCO- LAOCCORRENZE: se l elemento da valutare è maggiore di quello che cerchiamo èinutileproseguireacercare. In pseudo-codice: CALCOLAOCCORRENZE(L,x) cont <- 0 WHILE (L <> NIL AND INFO[L] <= x) IF (INFO[L] = x) THEN cont <- cont + 1 L <- NEXT[L] RETURN cont Eserc-III-30
13 Codifica C Innanzitutto dobbiamo pensare alle strutture per le liste. Per le liste di interi sappiamo come fare: typedef int TipoElemLista; struct StructLista TipoElemLista info; struct StructLista *next; ; typedef struct StructLista TipoNodoLista; typedef TipoNodoLista *TipoLista; Per la lista L dobbiamo ridefinire le strutture, sfruttando sempre la definizione generica typedef TipoLista ptipoelemlista; struct pstructlista TipoLista pinfo; struct pstructlista *pnext; ; typedef struct pstructlista ptiponodolista; typedef ptiponodolista *ptipolista; Eserc-III-31
14 int calcolaocc(tipolista l, int val) int cont = 0; Codifica C - Liste ordinate while ((l!= NULL) && (l->info <= val)) if (l->info == val) cont++; l = l->next; return cont; int Problema(pTipoLista L, int val) int occorrenze = 0; while (L!= NULL) occorrenze = occorrenze + calcolaocc(l->pinfo,val); L = L->pnext; return occorrenze; Eserc-III-32
15 Funzione principale Per usare le funzioni appena definite, scriviamo lo pseudo-codice per la creazione di n liste di m interi e quindi traduciamolo in codice C. funzione(n,m,x) pinitlista(l) FOR I = 1 TO N InitLista(APP) FOR J = 1 TO M ;;LEGGI DA TASTIERA UN INTERO (VAL) INSERISCITESTALISTA(APP,VAL) PINSERISCITESTALISTA(L,APP) RISULTATO <- Problema(L,X) INSERISCITESTALISTA e PINSERISCITESTALISTA eseguono la stessa operazione di inserimento, ma su tipi di dato differente Eserc-III-33
16 funzione(int n, int m,int x) ptipolista plista1,papp; int i,j,res; pinitlista(&plista1); for(i=0;i<n;i++) TipoLista app; InitLista(&app); for (j=0;j<m;j++) int val; Funzione principale in C printf("inserisci elem in lista %d ",(i+1)); scanf("%d",&val); InserisciTestaLista(&app,val); pinseriscitestalista(&plista1,app); printf("%d è presente %d volte\n",x,problema(plista1,x)); Modificare lo pseudo-codice della generazione delle liste nel caso in cui n e m non siano noti a priori. Eserc-III-34
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
Laboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 21 Strutture dinamiche Gli array ci permettono di memorizzare un insieme di dati dello stesso tipo Deve essere noto staticamente il
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
Inserimento in una lista ordinata
Inserimento in una lista ordinata Vogliamo inserire un nuovo elemento in una lista in cui gli elementi sono memorizzati in ordine crescente: Passo 1: creare un nuovo nodo della lista Passo 2: trovare il
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));
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
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
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):
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
Hash Table. Hash Table
Hash Table La ricerca di un elemento su una lista (semplice o doppia) presenta una complessità di tipo O(n), dato che occorre scandire (al più) l intera lista per poter trovare l elemento desiderato. Le
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
Implementazione 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
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
Il linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
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
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
Esercizi Strutture dati di tipo astratto
Salvatore Cuomo Esercizi Strutture dati di tipo astratto Lezione n. 20 Parole chiave: Strutture dati, pile code, liste Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio
Le liste. ADT e strutture dati per la rappresentazione di sequenze. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 5
Le liste ADT e strutture dati per la rappresentazione di sequenze L ADT delle liste Una lista di valori di tipo A è una sequenza finita: a1, a2, L, an dove ai A, per ogni i valore lunghezza posizione L
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,
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
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
Esercizi su programmazione ricorsiva 1. Pericle Perazzo 23 marzo 2012
su programmazione ricorsiva 1 Pericle Perazzo [email protected] http://info.iet.unipi.it/~fondii/ 23 marzo 2012 Ripasso di programmazione ricorsiva Ripasso di programmazione ricorsiva Algoritmo
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
Lezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.
Ricorsione Funzioni ricorsive Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Un esempio di funzione ricorsiva
Linguaggi di programmazione + laboratorio a.a. 2012/2013
Linguaggi di programmazione + laboratorio a.a. 2012/2013 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a
Lezione 12 Tabelle Hash
Lezione 12 Tabelle Hash Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 2 ABR: Visita Scrivere un programma che legga
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
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
Corso di Informatica 1 (IN1) Tutorato n. 11
Corso di Informatica 1 (IN1) Tutorato n. 11 Marco Liverani Esercizio n. 1 Leggere in input una lista di numeri interi ordinati in ordine crescente. Dopo aver letto la sequenza, inserire nella posizione
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
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
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
PUNTATORI A STRUTTURE
PUNTATORI A STRUTTURE È possibile utilizzare i puntatori per accedere a variabili di tipo struct Ad esempio: typedef struct { int Campo_1, Campo_2; TipoDato; TipoDato S, *P; P = &S; Operatore. di selezione
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
Introduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
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 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,
Alberi Binari di Ricerca
Alberi Binari di Ricerca Algoritmi su gli alberi binari: visite Dato un puntatore alla radice di un albero vogliamo scandire in modo sistematico tutti i nodi di tale albero In una lista abbiamo una unica
Esercizi. Stringhe. Stringhe Ricerca binaria
Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)
Esercizio 1: Puntatori impiegati che sono manager
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 10 Esercitazione: 25 gennaio 2006 Esercizi di riepilogo Problema: Esercizio 1: Puntatori impiegati che sono manager Si
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.
Lezione 9 Alberi binari di ricerca
Lezione 9 Alberi binari di ricerca Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Lista monodirezionale Scrivere
Lezione 9: Strutture e allocazione dinamica della memoria
Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare
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
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
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
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
Linguaggio C: PUNTATORI
Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori
FONDAMENTI DI INFORMATICA
Politecnico di Milano COGNOME E NOME Facoltà di Ingegneria Industriale FONDAMENTI DI INFORMATICA Seconda prova in itinere 13 Febbraio 2017 Primo Appello (Laureandi) 13 Febbraio 2017 RIGA COLONNA MATRICOLA
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
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
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)
Programmazione Ricorsione
Programmazione Ricorsione Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Ricorsione Cos è la ricorsione? In matematica... n! = { n (n 1)! se n > 0 1 altrimenti N = {0} {i + 1 : i N} Principio
Algoritmi di ordinamento: Array e ricorsione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion
Laboratorio 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
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
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
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
