/**
  * LinkedListMain
  * Classe di prova delle classi LinkedListStack e LinkedListQueue
  * @author Adriano Luchetta
  * @version 21-Nov-2005
  * @version 3-Dic-2004
  * @see LinkedListStack
  * @see LinkedListQueue
  */

import java.io.FileReader;
import java.io.PrintWriter;
import java.io.IOException;

import java.util.Scanner;

public class LinkedListMain
{
   public static void main(String[] args) throws IOException
   {
      if (args.length < 3)
      {
         System.out.println("uso: $ java Main fileName fileName fileName");
         System.exit(1);
      }
      
      Scanner in = new Scanner(new FileReader(args[0]));

      Stack pila = new LinkedListStack();
      Queue coda = new LinkedListQueue();

      while (in.hasNextLine())
      {
         String line = in.nextLine();
         pila.push(line);
         coda.enqueue(line);
      }

      in.close();
      
      PrintWriter writer1 = new PrintWriter(args[1]);
      PrintWriter writer2 = new PrintWriter(args[2]);

      writer1.println("*** ANDATA righe = " + coda.size() + " ***");
      while (!coda.isEmpty())
         writer1.println((String)coda.dequeue());

      writer2.println("*** RITORNO righe = " + pila.size() + " ***");
      while (!pila.isEmpty())
         writer2.println((String)pila.pop());

         
      writer1.close();
      writer2.close();
   }
}