// CSE 143, Autumn 2016 // // Practice with Stacks and Queues import java.util.*; public class Practice { public static void main(String[] args) { Queue queue = new LinkedList(); Stack stack = new Stack(); for (int i = 1; i <= 6; i++) { queue.add(i * 3); stack.push(i * 3); } /*System.out.println("Queue:"); System.out.println(" numbers: " + queue); System.out.println(" sum: " + sum(queue)); System.out.println(" numbers: " + queue); System.out.println();*/ System.out.println("Stack:"); System.out.println(" numbers: " + stack); System.out.println(" sum: " + sum(stack)); System.out.println(" numbers: " + stack); } public static int sum(Queue numbers) { int sum = 0; int size = numbers.size(); for (int i = 0; i < size; i++) { int num = numbers.remove(); numbers.add(num); sum += num; } return sum; } // can use one aux. Queue public static int sum(Stack numbers) { int sum = 0; int size = numbers.size(); Queue temp = new LinkedList(); while (!numbers.isEmpty()) { int num = numbers.pop(); temp.add(num); sum += num; } // we have sum, numbers empty, temp has all our data while (!temp.isEmpty()) { numbers.push(temp.remove()); } while (!numbers.isEmpty()) { temp.add(numbers.pop()); } while (!temp.isEmpty()) { numbers.push(temp.remove()); } return sum; } }