private Node back
还没有使用,并且enqueue
(它是 push)和dequeue
(它是 pop)除了重命名一些东西之外还没有真正被修改过。同样,这最初是一个堆栈,但我正在尝试将其修改为一个队列。我之前用 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;
}
上面是我遇到最多麻烦的地方——目前它的行为类似于 pop(获取和删除列表中最后输入的元素)。
public boolean isFull() //Checks to see if List is Full.
{
return ( counter == 5 );
}
我将计数器设置为最多 5,这样我就可以调试 isFull。
public boolean isEmpty() //Checks to see if List is empty
{
if ( counter == 0 )
{
return true;
} else {
return false;
}
}
这只是说如果计数器为零,则 isEmpty 为真(否则为假)。
}