private Node back
はまだ使用されておらず、enqueue
(プッシュ) とdequeue
(ポップ) は、いくつかの名前を変更する以外は実際には変更されていません。繰り返しますが、これはもともとスタックでしたが、キューに変更しようとしています。以前に s を使用してリンクされていないリストのキューとスタックをint
作成したことがありますが、オブジェクトとリンクされたリストを使用すると、ちょっと迷ってしまいます。
public class DogQueue
{
private Node front = null;
private Node back = null;
private Node element = null;
private int counter = 0;
上記は変数を設定するだけです。
private class Node //This sets up the Linked List
//Data Structure with nodes.
{
private Dog doggy;
private Node nextNode;
private Node firstNode;
Node(Dog newDog)
{
doggy = newDog;
}
}
私がよく理解していないノードのものは上にあります。
public void enqueue(Dog aDog) //This should enqueue
//an object of type Dog.
{
Node dogNode = new Node(aDog);
dogNode.nextNode = front;
counter++;
front = dogNode;
}
上記は push メソッドから変更されておらず、名前が変更されただけです。
public Dog dequeue() //This should output
//the first entry in the list.
{
Dog firstDog = front.doggy;
element = front.firstNode;
counter--;
return firstDog;
}
上記は私が最も問題を抱えている場所です。現在、ポップのように動作します(リストに最後に入力された要素を取得して削除します)。
public boolean isFull() //Checks to see if List is Full.
{
return ( counter == 5 );
}
isFull をデバッグできるように、最大 5 になるようにカウンターを設定しました。
public boolean isEmpty() //Checks to see if List is empty
{
if ( counter == 0 )
{
return true;
} else {
return false;
}
}
これは、counter がゼロの場合、isEmpty が true (そうでない場合は false) であることを示しています。
}