package queue;

public interface MyQueue<T> {
	
	/**
	 * Aggiungi l'elemento specificato in fondo alla coda
	 * @param item
	 */
	boolean offer(T item);
	
	/**
	 * Rimuove l'elemento in testa alla coda e lo restituisce
	 * @return
	 */
	T remove();
	
	/**
	 * Restituisce l'elemento in cima alla coda senza rimuoverlo.
	 * @return
	 */
	T peek();
	
	/**
	 * Restituisce l'elemento il numero di elementi correnti nella coda.
	 * @return
	 */
	int size();
	
	/**
	 * Restituisce se la coda è vuota o meno.
	 * @return
	 */
	boolean isEmpty();
	
}
