2012-03-20 9 views
0

は、私がリンクリストクラスのメソッドを記述する必要があること:リンクリストの印刷は、すべてのn番目の整数方法

印刷リストのすべての「n番目」ノードの内容。ユーザーから「n」を取得し、 が0より大きいことを確認してください。

どうすればいいですか?

public void nthNode (int n) { 
    if (n <= 0) { 
     System.out.println("error"); 
    } else { 
     //bla 
    } 
} 
+2

@Marlonによるコメントが2番目です。私たちは正しい方向にあなたを動かすためのヒントを与えますが、宿題の全ポイントは、あなたのために仕事をするために多くの知らない人に尋ねるのではなく、学ぶことです。 –

+0

私は考えてカウンタを作って、curr.next!= nullの間にwhileループを言って、各ノードを何とか反復し、データmod n == 0の場合、system.out.printlnノードのデータを出力します。 – anthony

答えて

0

リスト内のすべての要素を繰り返します。現在の項目のインデックスがnで割り切れる場合は、要素を出力します。モジュラス演算子(Javaの%)を使用して除算をチェックすることができます

0

主な動機は、カウンタがnの倍数になるときにノードのデータを出力することです。

modでデータをチェックする代わりに、カウンタでそれを行い、nでmodチェックをする必要があります。

whileループを使用して(currポインタを使用して)リンクリストを反復処理します。条件curr.next!= nullを確認してください。 countを0に初期化します。反復処理中は、今まで通過したノードの数をカウントします。 (nは==カウント)場合は、ノードのデータを印刷し、あなたには、いくつかの並べ替えのノードクラスを持っていると仮定すると0

1
public void nthNode (int n) { 
    if (n <= 0) { 
     System.out.println("error"); 
    } else { 
     for (int i = 0; i < size(); i += n) { 
      //LinkedList#get(i); 
     } 
    } 
} 
0

に、カウントを初期化します。

public void nthNode(int n){ 
    if(n <= 0){ 
      System.out.println("error"); 
     } else { 
     Node e = new Node(); 
     e = head; 

     int count = 0; 

     while(e != null){ 

       if(count == n){ 
        //do stuff 
        break; 
       } 

       e = e.next; 
       cout++; 
    } 

} 

申し訳ありませんが、ちょっとずさんそれはです要旨。

関連する問題