所以我在Java中实现了一个队列,我试图实现一个在队列末尾插入一个元素的过程。但是我收到一条错误消息“java.lang.NullPointerException”。我是新来的,我不知道这意味着什么或如何解决它。
class Node {
public int ielement;
public String selement;
public Node next;
public Node(int iel, String sel) {
ielement = iel;
selement = sel;
}
class Implement {
private Node head;
private Node tail;
public Implement() {
head = null;
tail=null;
}
public void InsertAtTheEnd(int iel, String sel){
Node newNode=new Node(iel,sel);
if(!Empty())//if the queue is empty{
tail.next=newNode;
tail=newNode;}
else{
newNode.next=head;
head=newNode;
}
}
public static void main(String[] args) {
Implement k = new Implement();
k.InsertAtTheEnd(1, "b");
k.InsertAtTheEnd(3, "bes");
k.InsertAtTheEnd(4, "kes");}
答案 0 :(得分:0)
您永远不会初始化tail
。如果队列不为空,tail.next
应该指向新创建的节点,就像您所做的那样。但是,如果是,head
和tail
都应指向新添加的节点。
public void insertAtTheEnd (int iel, String sel) {
Node newNode = new Node(iel,sel);
if (!empty()) {
tail.next = newNode;
tail = newNode;
} else {
head = newNode;
tail = newNode;
}
}