Created
November 15, 2013 00:05
-
-
Save jonfriesen/7476747 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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