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

Coda

Alberi binari

Un albero binario è