好吧,我已經完成了這個程序,但是現在我迷了路。我返回空指針(它在第44行說,但這只是一個while循環),我需要幫助修復它。我使用鏈表來實現我的隊列,而其他兩個類都通過100%,所以最終的類(CarQueue)是創建空指針的問題所在。我的隊列中的空指針(鏈接列表)
public class CarQueue<E> {
private LinkNode<E> head;
private LinkNode<E> tail;
public CarQueue() {
head = null;
tail = null;
}
public CarQueue(E newData) {
LinkNode<E> temp = new LinkNode<E>(newData, null);
head = temp;
tail = temp;
}
public void addToQueue(E newData) {
LinkNode<E> temp = new LinkNode<E>(newData, null);
if (empty() == false) {
tail.setNext(temp);
tail = temp;
} else {
head = temp;
tail.setNext(temp);
tail = temp;
}
}
public String toString() {
LinkNode<E> temp = head;
String cars = "";
while (temp.getNext() != null) {
cars += temp.toString() + '\n';
}
return cars;
}
public E removeFmQueue() {
LinkNode<E> headReturn = head;
head = head.getNext();
return headReturn.getData();
}
public LinkNode<E> peek() {
return head.getNext();
}
public boolean empty() {
if (head == null)
return true;
else
return false;
}
}
嚴格執行我的規範,我被告知要設置一個空的構造函數,其中head是null,是的,但在我的第二個構造函數頭中應該是temp節點的值。第二個構造函數設置爲隊列中有一個元素,因此頭部和尾部都是temp。根據我的測試,雖然(temp.getNext()!= null)拋出異常,但getNext很好,它是在我的LinkNode類中設置的,它完美地工作並通過了所有測試。我不確定爲什麼我會得到完全無效的。希望這有助於 – user3466773