优先级队列排序所有项目,但最后一个

时间:2013-05-29 23:34:42

标签: java priority-queue

/* 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 */

1 个答案:

答案 0 :(得分:0)

你的问题在于:

pQueArray[j+1] = item;

这表示您将最新项目添加到队列的最后位置,只有在您完成处理以比较其余元素之后。