Двойной связанный список - исключение нулевого указателя снова - PullRequest
0 голосов
/ 06 марта 2012

Я получаю это исключение, которое, похоже, заключается в том, что я делаю что-то с узлом, который был нулевым.Может кто-нибудь объяснить, как я это делаю?Как должен выглядеть конструктор?Я видел его пустым или с пустыми узлами заголовка и трейлера ..

    //default constructor
public AddressList() {

}

    //get size
public int size() {
    return counter;
}

public void addEntryNode(){
    //create the new node
    EntryNode n = new EntryNode();
    //set the data
    System.out.println("Enter first name: ");
    n.myFirstName = keyboard.next();
    n.setFirstName(n.myFirstName);

    System.out.println("Enter Last Name: ");
    n.myLastName = keyboard.next();
    n.setLastName(n.myLastName);

    System.out.println("Enter Email Address: ");
    n.myEmail = keyboard.next();
    n.setEmail(n.myEmail);

    System.out.println("Enter Phone Number: ");
    n.myPhoneNum = keyboard.next();
    n.setPhoneNum(n.myPhoneNum);

    n.setIndex(index);

    //add nodes to head of list
    head.setPrev(n);
    n.setNext(head);
    head = n;

    //up the count and index 
    counter++;

1 Ответ

1 голос
/ 06 марта 2012

Ну, это похоже на наиболее вероятное исправление.Инициализируйте заголовок как ноль и добавьте условие, когда список пуст.

public AddressList() {
    head = null
}

И ваше условие будет выглядеть так:

if (head == null) {  // empty list
    head = n
}
else {
    head.setPrev(n);
    n.setNext(head);
    head = n;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...