0
/* INPUT
Greenland
Denmark
Iceland
Finland
Sweden
Norway
*/
該部分返回所需的一切。除了最後一個,我得到了他們。優先隊列排序所有項目,但最後
public void insert(Country item){
System.out.println("Item receieved by pQueue: " + item.getCountryName());
int j;
if (nItems==0)
pQueArray[nItems++] = item;
else{
for (j=nItems-1; j>=0; --j)
if (item.getCountryName().compareTo(pQueArray[j].getCountryName()) < 0)
pQueArray[j+1] = pQueArray[j];
else
break;
// end for
pQueArray[j+1] = item;
nItems++;
} // end else
} // end insert()
它沒有正確返回最後一個項目,我不明白爲什麼?
/* OUTPUT
Denmark
Finland
Greenland
Iceland``
Sweden
Norway */
爲什麼不使用java的優先級隊列(http://docs.oracle.com/javase/6/docs/api/java/util/PriorityQueue.html)與自定義比較? –
我強烈建議您自己學習如何進行調試,因爲它會長期支付分紅。在分配給pQueArray [...]的兩種情況下,打印發生在隊列中的事件。你會很快發現錯誤是什麼。 – jarmod