/** * RecursiveQueueBySingleStackMain * classe di prova della classe RecursiveQueueBySingleStack * classe per esercitazione: laboratorio VIII * @author Adriano Luchetta * @version 21-Nov-2005 * @see RecursiveQueueBySingleStack */ import java.io.FileReader; import java.io.PrintWriter; import java.io.IOException; import java.util.Scanner; public class RecursiveQueueBySingleStackMain { public static void main(String[] args) throws IOException { // precondizioni if (args.length < 3) { System.out.println("uso: java QueueByStacksMain fileName fileName fileName"); System.exit(1); } Scanner in = new Scanner(new FileReader(args[0])); Stack pila = new ArStack(); Queue coda = new RecursiveQueueBySingleStack(); // lettura parole da file di testo e inserimento in pila e coda while (in.hasNextLine()) { Scanner tok = new Scanner(in.nextLine()); tok.useDelimiter("[ .,;:!?]+"); while (tok.hasNext()) { String token = tok.next(); pila.push(token); coda.enqueue(token); } tok.close(); } in.close(); PrintWriter writer1 = new PrintWriter(args[1]); PrintWriter writer2 = new PrintWriter(args[2]); // stampa in un file di output delle parole in ordine di acquisizione writer1.println("*** ANDATA stazioni = " + coda.size() + " ***"); while (!coda.isEmpty()) writer1.println((String)coda.dequeue()); // stampa in un file di output delle parole in ordine inverso di acquisizione writer2.println("*** RITORNO stazioni = " + pila.size() + " ***"); while (!pila.isEmpty()) writer2.println((String)pila.pop()); writer1.close(); writer2.close(); } }