Skip to content

Instantly share code, notes, and snippets.

@jonfriesen
Created November 15, 2013 00:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonfriesen/7476747 to your computer and use it in GitHub Desktop.
Save jonfriesen/7476747 to your computer and use it in GitHub Desktop.
package Lab08;
import java.util.Random;
public class AirlineStandbyQueue {
private SortedListAdaptablePriorityQueue<Integer, Passenger> q;
public static void main(String[] args)
{
new AirlineStandbyQueue();
}
public AirlineStandbyQueue()
{
q = new SortedListAdaptablePriorityQueue<Integer, Passenger>();
// Test Stuff
populateQueue(10);
popQueue();
}
/**********************************
* Utility Operations
**********************************/
private void popQueue()
{
int total = q.size();
for(int i=0; i < total; i++)
{
System.out.println(i+" "+getNextPassenger().getPassenger());
}
}
private void populateQueue(int numberOfRecords)
{
String[] names = new String[]{"Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet" };
Random g = new Random();
for(int i=0; i < numberOfRecords; i++)
{
insertPassenger(new Passenger(names[g.nextInt(names.length)]));
}
}
/**********************************
* AirlineStandbyQueue Operations
**********************************/
public void insertPassenger(Passenger newPassenger)
{
q.insert(q.size(), newPassenger);
}
public void insertPassenger(int priority, Passenger newPassenger)
{
q.insert(priority, newPassenger);
}
public Passenger getNextPassenger()
{
return q.removeMin().getValue();
}
public Passenger removePassenger(int priority, Passenger removePassenger)
{
return q.remove(new SortedListAdaptablePriorityQueue.LocationAwareEntry<Integer, AirlineStandbyQueue.Passenger>(priority, removePassenger)).getValue();
}
public void changePassengerPosition(int currentPosition, Passenger passenger, int newPosition)
{
q.replaceKey(new SortedListAdaptablePriorityQueue.LocationAwareEntry<Integer, AirlineStandbyQueue.Passenger>(currentPosition, passenger), newPosition);
}
public Passenger updatePassengerRecord(int position, Passenger currentRecord, Passenger updatedRecord)
{
return q.replaceValue(new SortedListAdaptablePriorityQueue.LocationAwareEntry<Integer, AirlineStandbyQueue.Passenger>(position, currentRecord), updatedRecord);
}
/**********************************
* Passenger Private Class
**********************************/
private class Passenger
{
private String name;
public Passenger(){}
public Passenger(String name) { this.name = name; }
public String getPassenger() { return name; }
public void setPassenger(String name) { this.name = name; }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment