Program



Part 1:  The Program
The XYZ Company is located in a large city.  The company maintains a small fleet of vehicles for use by its employees to travel to and from client meetings during the business day. Due to limited space in the city, parking for the vehicles is only available one narrow lot that will hold two lines of parked cars. 

Small automobiles are parked in one single line and larger vans are parked in a second single line. There is only one entrance/exit for each line, at the front of lot.   

 enter  exit  

Auto1  Auto2  …  AutoN  

Van1  Van2  … VanN  
 enter  exit  

Write a program using stacks and queues to control use of vehicles in the lots.

Program Input
Two separate input data files will be used.

Vehicle Data
  
The first data file contains a list of vehicles parked in the lot at the beginning of the day.   
  Each line will detail information about one vehicle, as follows:
A letter indicating its type (A for automobile, V for van)
A 6-character license plate  
The capacity of the vehicle

Sample records:
   A AAA111 4  
   V AIS897 8
  
Checkout/Return Data

The second input data file contains checkout data (used to check out vehicles) and
return data (used to return vehicles).  The data for each checkout/return will be
contained on one line.  The lines will be listed in the order that vehicles are used, so
checkouts will be mixed in with returns. 

Each checkout line will contain: 
The letter 'C' indicating a checkout
The number of passengers in one group  
(needing to be transported to the same location)

Sample lines:
C 10 
C 2  
Data Structure Overview
The program will also require implementation of two stacks and one queue. Both should be implemented using dynamic memory allocation of nodes stored within linked lists.  All data structures must be implemented from scratch (no use of templates from the STL allowed). 

The vehicles parked in the lot will be stored in two separate stacks (one for automobiles and one for vans). 

Within the program, vehicle record nodes will contain vehicle record data from the input data file, along with a link to the next vehicle node in the stack.