我正在爲作業進行作業:進口/庫問題?
Josephus問題。在來自古代的約瑟夫斯問題中,N人處於困境,並同意採取以下策略來減少人口。他們將自己安排在一個圓圈內(位置編號從0到N ??? 1),然後繞着圓圈前進,消除每個第M個人,直到只剩下一個人。據傳說,約瑟夫想出了坐在哪裏以避免被淘汰。編寫一個隊列客戶端Josephus.java,它從命令行取出M和N,並打印出人們被排除的順序(從而顯示Josephus在圈內的位置)。
我的代碼如下:
package josephus;
import java.util.Queue;
public class Josephus {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]),
m = Integer.parseInt(args[1]);
Queue<Integer> q = new Queue<Integer>();
for (int i = 0; i < n; i++)
q.enqueue(new Integer(i));
int k = 0;
while (!q.isEmpty())
{
int x = q.dequeue();
if (++k % m == 0)
StdOut.print(x + " ");
else
q.enqueue(x);
}
StdOut.println();
} }
當我在NetBeans中運行它,它給我的錯誤,指出:
隊列是抽象的;不能被實例化
排隊:找不到符號
離隊:找不到符號
的StdOut:找不到符號
我認爲,通過導入java.util.Queue中會使隊列工作對於StdOut,我下載了一個stdlib.jar以添加到包含StdOut的項目庫中,我認爲這會起作用。
如果我的代碼有問題或需要做其他事情,我會非常感激這個幫助。另外,爲了參考並查看我在哪裏得到了stdlib.jar,這裏是教科書網站的鏈接,從這個問題來自哪裏:http://algs4.cs.princeton.edu/13stacks/(約瑟夫問題是#37下的「創造性問題部分」,最後是
您是否熟悉抽象類? – 2014-09-04 21:19:41
可能重複[如何在Java中實例化隊列對象?](http://stackoverflow.com/questions/4626812/how-do-i-instantiate-a-queue-object-in-java) – DavidPostill 2014-09-04 21:22:09
隊列 q =新LinkedList ();你的代碼的問題是你試圖實例化一個接口。 –
coffeeaddict
2014-09-04 21:23:00