Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Strutture dati dinamiche: liste e puntatori, Slide di Informatica

Una panoramica sui tipi di dati e le strutture dati dinamiche, con particolare focus sulle liste e sui puntatori. Vengono introdotti i concetti di tipo di dato primitivo, dati strutturati (array, struct), tda o adt, variabili statiche e dinamiche, allocazione statica e dinamica della memoria, il problema del memory overflow e il ciclo di allocazione e deallocazione. Viene poi approfondito il concetto di puntatore, come tipo di variabile che contiene un indirizzo, e viene mostrato un esempio di utilizzo. Infine, viene presentata la struttura dati della lista, come struttura dinamica che permette la modifica del numero di elementi in fase di esecuzione mantenendo un numero di puntatori statico.

Tipologia: Slide

2018/2019

Caricato il 29/04/2024

rita-miritello-1
rita-miritello-1 🇮🇹

3

(4)

30 documenti

1 / 17

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Le Liste
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Strutture dati dinamiche: liste e puntatori e più Slide in PDF di Informatica solo su Docsity!

Le Liste

Tipi di dato

  • (^) I tipi di dato primitivi (predefiniti) int, float, string, char
  • (^) Dati strutturati (array, struct )

variabili

  • (^) Statiche (sono note le loro dimensioni)
  • (^) Dinamiche ( non è noto a priori la quantità di dati da elaborare )
  • (^) Allocazione statica della memoria ( prima dell’avvio di un programma)
  • (^) Allocazione dinamica della memoria ( predisporre le variabili al momento della loro esecuzione)

Il problema è definire una struttura dati che sia «effettivamente dinamica» Deve permettere la modifica in fase di esecuzione degli elementi mantenendo costante il numero di puntatori

PUNTATORE

tipo di variabile che contiene un indirizzo int *pi; // dichiaro un puntatore a un tipo int &num (operatore indirizzo applicato alla variabile num) Ogni variabile ha Nome : num Tipo :int Valore : Indirizzo : A

STACK

#include #include using namespace std; struct vettura { string targa; int cil; struct vettura*next; }

int main() {vettura *testa; int scelta; vettura *p; testa=NULL; // INIZIALIZZAZIONE DELLA PILA A VUOTO do { // gestione di una pila o stack (LIFO) cout<<"1.insersci auto (push) \n"; cout<<"2.elimina auto (pop )\n"; cout<<"3.stampa elenco auto presenti nel garage\n"; cout<<"0.esci\n"; cout<<"fai una scelta\n"; cin>>scelta; switch(scelta) { case 1: p=new(vettura); // creo un nuovo elemento cout<<"numero di targa\n"; cin>>p->targa; // inserisco i dati cout<<"cilindrata\n"; cin>>p->cil; p->next=testa; // aggiorna il puntatore testa=p; // all'inizio della pila break;

case 3: if( testa==NULL) cout<<"non ci sono autovetture disponibili\n"; else { cout<<"ELENCO AUTOVETTURE DISPONIBILI\n"; for (p=testa; p!=NULL;p=p->next ) // per visualizzare la pila si posiziona sul primo e scorre la lista { cout<<p->targa<<"\t\t"<<p->cil<<endl; } } break; } } while (scelta|=0); }

lista

Struttura dati dinamica che permetta in fase di esecuzione la modifica del numero di elementi e mantenga un numero di puntatori statico La variabili sono in numero non noto a priori mentre il numero di puntatori deve essere noto