1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-25 11:34:18 +00:00
appunti-steffo/2 - Algoritmi e strutture dati/1 - Appunti/13 - Introduzione alle strutture dati.md

25 lines
1.1 KiB
Markdown
Raw Normal View History

## Introduzione alle Strutture Dati
Una _struttura dati_ è un modo in cui si possono organizzare i dati di un programma.
Si possono definire in due modi: **elementari** e **astratte**.
### Strutture dati elementari
Le strutture _elementari_ dipendono strettamente dal modo in cui vengono memorizzati i dati.
> **Array** e **liste** sono strutture dati elementari: sono definite dicendo come sono memorizzati i dati, rispettivamente, in celle contigue di memoria e da una serie di nodi con un valore e che puntano al successivo.
### Strutture dati astratte
Le strutture _astratte_ sono separate dal modo in cui vengono memorizzati i dati, sono più ad alto livello, e si definiscono descrivendo le **proprietà** della struttura e i **metodi** che su di essa possono essere effettuate.
> Una _classe_ in un qualsiasi linguaggio di programmazione è una struttura dati astratta.
> Una _pila_ astratta:
> - memorizza dati tutti dello stesso tipo
> - `pop()`, estrae dalla pila l'ultimo valore inserito
> - `push(val)`, aggiunge alla pila un valore
> - `top()`, permette di vedere l'ultimo valore inserito nella pila
> - `vuota()`, dice se la pila è vuota oppure no.