我正在處理排序的隊列,如優先級隊列。我已經做了一個列表,它已經很好。現在我想用數組來完成它。但是我有一點邏輯性問題,添加一個新元素並將其插入排序後的數組中。插入排序的數組隊列
最終的輸出應該是這樣的:
優先順序:5值:x
優先級:4值:異
....(等)
所以元件與所述最高Priorithy應該在索引= 0.
我只是不知道(是的,我知道它真的只是切換它,但我不能這樣做:/)如何做到這一點...
我已經嘗試了一些東西,但我卡住了......:/可以請任何人 幫幫我?
這裏是我的代碼:
public class Queue {
private QueueElem[] a;
public Queue(int capacity)
{
QueueElem[] tempQueue = new QueueElem[capacity];
a= tempQueue;
}
public void enqueue(int p, String v)
{
QueueElem neu = new QueueElem(p,v);
int i=0;
while(i<a.length)
{
if (a[i] == null)
{
a[i] = neu;
break;
}
i++;
}
}
public void writeQueue()
{
int i=0;
while((i< a.length) && (a[i] != null))
{
System.out.println("Priority: " + a[i].priority + " Value: " + a[i].value);
i++;
}
}
public static void main(String args[])
{
Queue neu = new Queue(10);
neu.enqueue(4,"iso");
neu.enqueue(2,"abc");
neu.enqueue(5,"x");
neu.enqueue(1,"abc");
neu.enqueue(4,"bap");
neu.enqueue(2,"xvf");
neu.enqueue(4,"buep");
}
}//end class Queue
class QueueElem {
int priority;
String value = new String();
public QueueElem(){ }
public QueueElem(int p, String v)
{
this.priority = p;
this.value = v;
}
public int getPrio()
{
return this.priority;
}
public String getValue()
{
return this.value;
}
}