优先队列
package pers.zhang.queue;
import pers.zhang.linearList.SortedSinglyLinkedList;
public class PriorityQueue<T extends Comparable<T>> implements QQueue<T> {
private SortedSinglyLinkedList<T> list;
@Override
public boolean isEmpty() {
return this.list.isEmpty();
}
@Override
public void enqueue(T x) {
this.list.insert(x);
}
@Override
public T dequeue() {
return list.remove(0);
}
@Override
public String toString(){
return list.toString();
}
}
模拟线程调度
package pers.zhang.queue;
public class Process implements Comparable<Process> {
private String name;
private int priority;
public Process(String name, int priority)
{
this.name = name;
this.priority = priority;
}
public String toString()
{
return "("+this.name+","+this.priority+")";
}
@Override
public int compareTo(Process p)
{
return this.priority - p.priority;
}
}
class Process_ex
{
public static void main(String args[])
{
Process process[]={new Process("A",4),new Process("B",3),new Process("C",5),
new Process("D",4),new Process("E",10),new Process("F",1)};
PriorityQueue<Process> que = new PriorityQueue<Process>();
new PriorityQueue<Process>();
System.out.print("入队进程:");
for (int i=0; i<process.length; i++)
{
System.out.println(process[i]);
que.enqueue(process[i]);
System.out.print(process[i]+" ");
}
System.out.print("\n出队进程:");
while (!que.isEmpty())
System.out.print(que.dequeue().toString()+" ");
System.out.println();
}
}