Si definiscono due metodi ricorsivi privati con l'intestazione private Object front(Stack s) private Object dequeue(Stack s) Saranno invocati nei metodi front() e dequeue() della coda, rispettivamente. Metodo front(Stack s) ===================== Caso base Se la pila ha un solo elemento, il metodo restituisce l'elemento (che e' ovviamente il primo della coda) senza estrarlo dalla pila Chiamata ricorsiva - Si estrae l'ultimo elemento dallo pila s (Object last = s.pop();) - si ispeziona il primo elemento nella pila rimanente con chiamata ricorsiva (Object first = front(s);) - si reinserisce l'elemento estratto last nella pila ( s.push(last);) Metodo Object dequeue(Stack s) ============================== Caso base Se la pila s ha un solo elemento, il metodo restituisce l'elemento (che e' ovviamente il primo della coda) estraendolo dallo pila s Chiamata ricorsiva - Si estrae l'ultimo elemento dallo pila s (Object last = s.pop();) - si estrae il primo elemento dalla pila rimanente con chiamata ricorsiva (Object first = dequeue(s);) - si reinserisce l'elemento estratto last nella pila (s.push(last);)