Le strutture dati sono le strutture utilizzate per memorizzare e organizzare i dati

Le strutture dati dinamiche sono quelle la cui organizzazione evolve dinamicamente durante l'esecuzione del programma: pile, code, insiemi, liste, alberi, ...

La scelta della struttura dati dipende principalmente dalle operazioni che dovranno essere effettuate

Pila (stack)

Implementazione di Stack<E>

public Stack() //costruttore

public void push(E o) //aggiunge in cima alla pila l'oggetto fornito tramite parametro

public E pop() //restituisce un riferimento all'oggetto che si trova in cima alla pila eliminandolo dalla pila stessa. Se la pila è vuota il metodo solleva l'eccezione non controllata EmptyStackException

public boolean empty() //restituisce true se e solo se la pila è vuotastac

Anzichè creare subito lo spazio per la pila (come x gli array), viene creato dinamiamente, man mano che risulta necessario

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/284256c6-235d-40c3-9396-8d95827ea766/Untitled.png

Coda

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a6c043b3-cecf-4c53-a72f-0c4e46bd1256/Untitled.png

Alberi binari

Un albero binario è

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/25054fba-7619-4900-850e-7c79983179c3/Untitled.png