2017-04-15 16 views
0

現在、私はキューで作業しており、キューに要素を追加するエンキューメソッドをコーディングしています。キューがいっぱいになると、キューにそれ以上の要素を挿入できないというメッセージが返されます。ここでは、要素を挿入しようとするたびに配列サイズの制限を2倍にする方法でエンキューメソッドを変更して、論理的にアイテムが新しい展開された配列に追加され、完全なキューに落ちないようにします。どのように私はこれを達成することができます、何かが有用です。あなただけのitemsからすべてのアイテムをコピーして、もう一度enqueueメソッドを呼び出した後、itemsとして二重の大きさで新しい配列を作成することができますキューがいっぱいになると配列サイズを増やすエンキューメソッド

コード

public void enqueue(Object newItem){ 
    if (!isFull()){ 
     back = (back+1) % QUEUE_SIZE; 
     items[back] = newItem; 
     count++; 
     return; 
    } else 
     System.out.println("Trying to enqueue into full queue"); 
} 
+0

ようこそ、これは「私のためにHWを行う」されていないようなもの、あなたがここに来るだろう最高のアドバイスを試してみて、自分でHWを行うことです。がんばろう! – alfasin

答えて

1

。ウェブサイトのStackOverflowのために

public void enqueue(Object newItem){ 
    if (!isFull()){ 
     ... 
    } else { 
     Object[] newItems = new Object[items.length * 2]; 
     copyFromTo(items, newItems); 
     items = newItems; 
     enqueue(newItem); 
    } 
} 
+0

copyFromToについては、私は新しいメソッドを作成する必要がありますか? – Alan

+0

そうです。単に 'items'を繰り返し、' newItems'に値を代入してください。 – alayor

+0

よろしくお願いします。 – Alan

関連する問題