Best writers. Best papers. Let professionals take care of your academic papers

Order a similar paper and get 15% discount on your first order with us
Use the following coupon "FIRST15"
ORDER NOW

In this example, the incoming cars come in the order E, D, C, B and A. The desired outgoing order (since the track moves only to the right) is A, B, C, D and E.

In this example, the incoming cars come in the order E, D, C, B and A. The desired outgoing order (since the track moves only to the right) is A, B, C, D and E. Our program considers the first incoming car, vs the desired outgoing car. Since E != A, E must go into the waiting line. Now our program will consider both the car at the top of the waiting line (since it is blocking all the others cars) as well as the incoming car each time. Again, E != A but also D != A, so D gets put in the waiting line, blocking E in the process. This will continue until A is the only car left in the incoming line, and it will be sent out. This leaves nothing incoming, but B would be the top car in the waiting line. Since B == B, B gets taken from the waiting line and sent out. This will repeat until all cars are gone, meaning the input was successfully matched to the output. An example that does NOT match is UGTA to AGTU. A, T and G would go into the waiting line. U would be sent out, but then the next required outgoing car is T. There would be nothing left in the incoming line, and the top car in the waiting line would be G. So, the match fails.

Program Features:

  1. You must take in incoming cars from the user until they input “DONE”.
  2. You must take in outgoing cars from the user until they have given as many cars as they did in step 1.
  3. You must print out whether or not the given input cars can be matched to the given output.

Java API Usage Requirements:

  • You may import the following packages: Scanner, Stack, Queue, LinkedList. No other packages are allowed.
  • For LinkedList, you may only use it via Queue interface. Your program must not use lists directly but instead rely on stacks and queues.
  • When using the Queue collection, use only the following methods: add, remove, peek, isEmpty, size.
  • When using the Stack collection, use only the following methods: push, pop, peek, isEmpty, size.

Requirements and Notes:

  • Don’t use arrays to store trains and move cars. Use stack(s) and queue(s).
  • You may not ask the user to specify the number of cars ahead of time.
  • The user must provide at least one incoming car. Print a message if they don’t and then allow the user to type in incoming cars again.
  • “Cars” is a loose term. The user should be allowed to type in anything as a car. An example of three incoming cars might be: A, honda, 10101
  • You may not reorder the incoming, outgoing or waiting line.
  • Cars cannot go from the waiting line back to the incoming line.
  • You do not need to verify that the user typed in the same outgoing items as incoming. (i.e. They said the only incoming car is A and the only outgoing one is B. Your program should report that it cannot be matched, but you do not need to display a special error message or anything else)
  • Make sure you test your program thoroughly. You are encouraged to use the provided examples, but you should verify that your program works with several of your own examples.
 
Looking for a Similar Assignment? Order now and Get 10% Discount! Use Coupon Code "Newclient"