2017-06-19 10 views
-1

このコードでスタックと同じことをしたいのですが キューを変更するにはどうすればいいですか?私はあなただけenqueuedequeue方法であなたのpushpop方法を交換する必要があり、そのどのようにJavaでキューを実現するには?

public StackAsArray(){ 
     this(new DynamicArray()); 
    } 
    public boolean isEmpty() { 

    } 
    public void push(Object o) { 

    } 
    public Object pop() { 

    } 
} 
+2

あなたの宿題を考えて試してみてください。いくつかのコードと要件をダンプする代わりに。 – GhostCat

答えて

1

のスタックまたはLinkedListのを使用する必要はありません。

enqueueは配列の末尾に要素を追加しますが、dequeueは要素を先頭から削除します。

public class QueueAsArray implements Queue { 
    ... 

    public void enqueue(Object o) { 
     arr.set(numOfElements, o); 
     numOfElements++; 
    } 

    public Object dequeue() { 
     if(isEmpty()) { // an empty check is a MUST 
      return null; 
     } 

     numOfElements = numOfElements - 1; 
     Object res = arr.get(0); 
     arr.set(0, null); // not 100% sure this works, but since this is a homework question, its upto you to figure out. The logic is to remove the 0th element. 
     return res; 
    } 
} 
関連する問題