-1

Node ファイルを使用するキューを書き込もうとしていますが、null ポインター例外がどこに問題があるのか​​ わかりません。私はオンラインで少し調べましたが、私はJavaに慣れていないので、ここで何を探しているのか理解できないと思います. 誰かがそれを見つけるか、少なくとも私を正しい方向に導くことができますか??

最初のキュー:

public class Queue extends CharNode {
public CharNode head;
public CharNode tail;

public Queue(){
    this.head = null;
    this.tail = null;}

public boolean isEmpty(){
    return (head==null);}

public void enqueue(Character character){
    if (isEmpty()){
        head.character = character;
        head.nextNode = tail;}
    else {
        CharNode oldTail = tail;
        tail = new CharNode();
        oldTail.character = character;
        oldTail.nextNode = tail;
    }
    }

public Character dequeue(){
    if (isEmpty()) throw new RuntimeException("Queue Empty");
    head.character = character;
    head = head.nextNode;
    return character;
}       
public static void main(String[] args){
    Queue queue = new Queue();
    queue.enqueue('a');
    queue.enqueue('b');
    System.out.print(queue.dequeue());
}

}

私の CharNode ファイルは次のようになります。

public class CharNode {
public Character character;
public CharNode nextNode;
public void charNode(Character character){
    this.character = character;
    this.nextNode = null;
}

}

そして、私が受け取った例外は次のようになります:

Exception in thread "main" java.lang.NullPointerException
at Queue.enqueue(Queue.java:14)
at Queue.main(Queue.java:32)
4

2 に答える 2

5
public boolean isEmpty(){
    return (head==null);}

public void enqueue(Character character){
    if (isEmpty()){
        head.character = character;   // you have just said that head is NULL

うまくいくかもしれないのは

if (isEmpty()){
        head = new CharNode ();     // There is no Constructor for CharNode (Character)
        head.character = character;
于 2013-10-21T05:30:14.157 に答える