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
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
Un albero binario è