   import java.util.*;
   import java.io.*;

   class Proj2{
   
   
      public static void printHeader(int count){
         System.out.println("Student Name      SSN: 123-45-6789");
         System.out.println("11 June 1999      COP3530-C99-Proj2");
         System.out.println("");
         System.out.println("Numbers read in: " + count);
			System.out.println("");
      }  
   
      public static int readNextInt(FileInputStream fin) throws java.io.IOException{
         int v;
         int nextInt = 0;
         while ((v = fin.read()) != -1){
            if ((v > '9') || (v < '0')){
               if (nextInt != 0)
                  return nextInt;
               else
                  continue;
            }
            nextInt = nextInt * 10 + (v-'0');
         }
         return v;
      }
   
      public static void main(String[] args)throws java.io.IOException{
      //read in array info
      //store in tempArray
         int [] tempArray = new int [100];
         FileInputStream fin = new FileInputStream(args[1]);
         int count = 0;
         int vT = readNextInt(fin);
      
         while (vT != -1){
            tempArray[count] = vT;
            count++;
            vT = readNextInt(fin);
         }
         
      	//Array inplementation
         if (args[0].equals("-a")){
         	//make array
            Array a = new Array(count);
            for (int i = 0; i < count; i++)
               a.sequence[i] = tempArray[i];
         
            printHeader(count);
            System.out.println("Data Structure: Array");
            System.out.println("");
            System.out.println("Input sequence: ");
            a.printArray();
				System.out.println("");
            System.out.println("Reversed sequence: ");
            a.ReverseArray();	
            a.printArray();
           	System.out.println("");
            System.out.println("Scrambled sequence:");
				a.scrambleArray();
            a.printArray(); 
         }
      
      	//Singly-Linked List implementation
         if (args[0].equals("-s")){
            Chain1 c1 = new Chain1();
            c1.makeList(tempArray,count);
         
            printHeader(count);
            System.out.println("Data Structure: SLL");
            System.out.println("");
            System.out.println("Input sequence: ");
            c1.printList();
				System.out.println("");
            System.out.println("Reversed sequence: ");
            c1.ReverseList();
            c1.printList();
				System.out.println("");
            c1.scrambleList();
            System.out.println("Scrambled sequence:");
            c1.printList();
         }

			//Doubly-Linked List implementation
         if (args[0].equals("-d")){
            Chain2 c2 = new Chain2();
            c2.makeList(tempArray,count);
         
            printHeader(count);
            System.out.println("Data Structure: DLL");
            System.out.println("");
            System.out.println("Input sequence: ");
            c2.printList();
				System.out.println("");
            System.out.println("Reversed sequence: ");
            c2.ReverseList();
            c2.printList();
				System.out.println("");
            c2.scrambleList();
            System.out.println("Scrambled sequence:");
            c2.printList();
         }
      
      
      } 
   }

