/** Rovescia uno stack. Classe didattica per illustrare l'uso di variabili riferimento di tipo interfaccia La classe usa due strutture dati di tipo Stack: GrowingArrayStack e LinkedListStack @version A. Luchetta @version 20-Nov-2006 @see Stack */ public class StackReverser { public static void main(String[] args) { Stack st = new GrowingArrayStack(); st.push("Pippo"); st.push("Pluto"); st.push("Paperino"); printAndClear(st); System.out.println(); st.push("Pippo"); st.push("Pluto"); st.push("Paperino"); printAndClear(reverseAndClear(st)); } private static Stack reverseAndClear(Stack s) { Stack p = new LinkedListStack(); while (!s.isEmpty()) p.push(s.pop()); return p; } private static void printAndClear(Stack s) { while (!s.isEmpty()) System.out.println(s.pop()); } }