私は、Javaを使用して制限付き出力を持つ両端キューを作成する方法を理解しようとしていたので、両端から要素を入力できますが、ただ1つから要素を削除できます。 私は単一のキューを実行しました。これはデキューを初めて実行したときに、私が読んでいる本はあまり役に立ちません。出力制限付きダブルエンドキューをJavaで起動する方法は?
私は少し失われており、ダブルはシングルよりも複雑です。
EDIT
シングルキューコード:
public class ListQueue<AnyType> implements Queue<AnyType>
{
private ListNode<AnyType> front;
private ListNode<AnyType> back;
private int counter;
public ListQueue()
{
front = back = null;
}
public boolean isEmpty()
{
return front == null;
}
public void enqueue(AnyType x)
{
if(isEmpty()) // Make queue of one element
back = front = new ListNode<AnyType>(x);
else // Regular case
back = back.next = new ListNode<AnyType>(x);
counter++;
}
public AnyType dequeue()
{
if(isEmpty())
throw new UnderflowException("ListQueue dequeue");
AnyType returnValue = front.element;
front = front.next;
counter--;
return returnValue;
}
public AnyType getFront()
{
if(isEmpty())
throw new UnderflowException("ListQueue getFront");
return front.element;
}
public void makeEmpty()
{
front = null;
back = null;
counter = 0;
}
}
あり、それはここで
EDIT
あるListNode
クラスは
class ListNode<AnyType>
{
public ListNode(AnyType theElement)
{
this(theElement, null);
}
public ListNode(AnyType theElement, ListNode<AnyType> n)
{
element = theElement;
next = n;
}
public AnyType element;
public ListNode<AnyType> next;
}
この宿題はありますか? 'Deque'のような既存のJava型を使えますか? –
OPのそれは、目標がカスタムデータ構造を書いているように聞こえる - 「私は単一のキューを実行した」 –
まあ、それはHWですが、デキューする必要はありません。 – randomizertech