我已經創建了一個優先級隊列,並在隊列中填充了項目並使用此隊列作爲基礎,我遍歷它並發現項目的優先級。根據使用某些邏輯將項目移動到子隊列的優先級。如何在JAVA中創建高優先級有界子隊列和低優先級有界子隊列
在我的主程序我創建界子隊列使用靜態報表,我想要做的就是創建一個使用我的父隊列構造函數的構造函數的有界子隊列什麼:public HiLoPriorityQueue(int high_capacity, int low_capacity)
構造應該創建初始容量高優先級子隊列中有界high_capacity和一個容量較低的低優先級有界子隊列low_capacity
可以通過使用父隊列上應用的相同添加和刪除方法從父隊列創建子隊列?
我的主要程序:
public class PQTest {
public static void main(String[] args) {
HiLoPriorityQueue<Customer> prq = new HiLoPriorityQueue<Customer>(10);
Customer c1 = new Customer("Rock",999);
Customer c2 = new Customer("Brock",1);
Customer c3 = new Customer("UnderTaker",1000);
HiLoPriorityQueue<Customer> hq = new HiLoPriorityQueue<Customer>(5);
HiLoPriorityQueue<Customer> lq = new HiLoPriorityQueue<Customer>(3);
// insert values in the queue
prq.add(c1);
prq.add(c2);
prq.add(c3);
// create iterator from the queue
Iterator it = prq.iterator();
System.out.println ("Priority queue values are: ");
while (it.hasNext()){
Customer c = (Customer) it.next();
System.out.println ("Value: "+ c);
System.out.println("Priority is :: "+c.getPriority());
if(c.getPriority() == 1){
if(hq.size() < 5)
hq.add(c);
else{
if(hq.size() < 5) lq.add(c);
else{
lq.remove();
lq.add(c);
}
}
}
else{
if(lq.size() < 3) lq.add(c);
}
}
}
}
隊列創建類:
「可以子隊列從父隊列通過使用施加在父隊列相同的添加和刪除方法創建??」 - 這似乎很直接。你有沒有試過,你是否面臨任何問題? – 6ton
public HiLoPriorityQueue(int high_capacity,int low_capacity){ \t \t helements = new Object [high_capacity]; \t \t lelements = new Object [low_capacity]; \t \t hq = new HiLoPriorityQueue(high_capacity); \t \t lq = new HiLoPriorityQueue (low_capacity); \t \t count = 0; \t \t head = 0; \t \t tail = 0; \t \t \t}這是我創建的構造函數,當我在我的邏輯hq.add(C)表示,母公司隊列被添加了,但沒有子隊列:( –
Dex
我看到了 - 但你沒有代碼在那裏創建2個子隊列 – 6ton