0
我做了一个泛型类型的队列。当我尝试打印出我创建的两个队列的内容时,结果以最后一个元素的格式返回,即第一个元素输出(LIFO)而不是先进先出(FIFO)。我似乎无法按照正确的顺序打印(FIFO)。我使用三个不同的类。该MYNODE类:队列打印查询
public class MyNode<T> {
public T payload;
public MyNode<T> next;
public MyNode<T> previous;
public MyNode(T payload) {
this.payload = payload;
}
public MyNode(T payload, MyNode<T> next, MyNode<T> previous) {
this.payload = payload;
this.next = next;
this.previous = previous;
}
public T getPayload() {
return payload;
}
public MyNode<T> getNext() {
return next;
}
public MyNode<T> getPrevious() {
return previous;
}
public void setPayload(T payload) {
this.payload = payload;
}
public void setNext(MyNode<T> next) {
this.next = next;
}
public void setPrevious(MyNode<T> previous) {
this.previous = previous;
}
}
的TestQueue类:
public class TestQueue {
public static void main(String[] args) {
MyQueue<String> qStr = new MyQueue<String>();
MyQueue<Integer> qInt = new MyQueue<Integer>();
qStr.enqueue("hello");
qStr.enqueue("world");
System.out.println("Size of queue: " + qStr.size());
System.out.println(qStr);
System.out.println();
qInt.enqueue(42);
qInt.enqueue(3);
System.out.println("Size of queue: " + qInt.size());
System.out.println(qInt);
System.out.println();
qStr.dequeue();
System.out.println(qStr);
System.out.println();
qInt.dequeue();
System.out.println(qInt);
}
}
的myQueue中类:
public class MyQueue<T> {
public int size = 0;
public MyNode<T> front = new MyNode<T>(null);
public MyNode<T> back = new MyNode<T>(null);
public void enqueue(T payload) {
MyNode<T> newNode = new MyNode<T>(payload);
newNode.next = front;
front = newNode;
if (isEmpty()) {
back = newNode;
}
size++;
}
public T dequeue() {
if (isEmpty()) {
return null;
}
T payload = front.payload;
front = front.getNext();
size--;
return payload;
}
public boolean isEmpty() {
return front == null;
}
public int size() {
return size;
}
public String toString() {
return front.getPayload().toString();
}
}
感谢您的意见。 – 2015-02-10 03:02:16