import java.util.Stack;
import java.util.Queue;
import java.util.LinkedList;

/**
 * Class for testing the behavior of stacks and queues.
 *   @author Dave Reed
 *   @version 8/25/15
 */
public class SQTester {
    public static void main(String[] args) {
        Stack<Integer> numStack = new Stack<Integer>();
        Queue<Integer> numQueue = new LinkedList<Integer>();
        
        for (int i = 1; i <= 5; i++) {
            numStack.push(i);
            numQueue.add(i*10);
        }
        
        System.out.println("S1: " + numStack.size() + ", " + numStack.peek());
        System.out.println("Q1: " + numQueue.size() + ", " + numQueue.peek());
        
        for (int j = 1; j <= 3; j++) {
            int num = numQueue.remove();
            numStack.push(num);
            numQueue.add(num);
        }

        System.out.println("S2: " + numStack.size() + ", " + numStack.peek());
        System.out.println("Q2: " + numQueue.size() + ", " + numQueue.peek()); 
        
        System.out.print("S3: ");
        while (!numStack.isEmpty()) {
            System.out.print(numStack.pop() + " ");
        }
        System.out.println();
        
        System.out.print("Q3: ");
        while (!numQueue.isEmpty()) {
            System.out.print(numQueue.remove() + " ");
        }
        System.out.println();       
        
    }
    
}
