Node と LinkedList という 2 つのクラスを作成しました。コードはコンパイル可能ですが、リンク リストに保存する最後のデータを生成することはありません。
これら2つのクラスを検討してください
Node.java
public class Node {
private int id;
private String name;
private Node next;
public Node(int id, String name) {
this.id = id;
this.name = name;
}
public int getID() {
return id;
}
public String getName() {
return name;
}
public void setID(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public Node(int id, String name, Node next) {
this.id = id;
this.name = name;
this.next = next;
}
}
LinkedList.java
public class LinkedList {
private Node start;
public LinkedList() {
start = null;
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.create(2345,"Peter");
list.create(3001,"Mary");
list.create(4763,"John");
list.create(3863,"Johnny");
list.display();
}
public void create(int id, String name) {
if(start == null) {
start = new Node(id, name, start);
}
else {
Node temp = start;
while(temp.getNext() != null) {
temp = temp.getNext();
}
Node newNode = new Node(id, name, null);
temp.setNext(newNode);
}
}
public void display() {
if(start == null) {
System.out.println("\nThe list is empty!");
}
else {
Node temp = start;
while(temp.getNext() != null) {
System.out.println("ID : " + temp.getID() + " Name : " + temp.getName());
temp = temp.getNext();
}
}
}
public void delete(int id, String name) {
Node previous = start;
Node temp = start;
while(temp.getID() != id) {
if(temp.getNext() == null) {
System.out.println("\nElement "+ id + " not found !");
break;
}
while(temp.getName() != name) {
if(temp.getNext() == null) {
System.out.println("\nElement "+ name + " not found !");
break;
}
previous = temp;
temp = temp.getNext();
}
if(temp == start) {
start = start.getNext();
}
else {
previous.setNext(temp.getNext());
}
}
}
}
この場合、プログラムはリストに格納されているすべてのコンテンツを生成しますが、最後のコンテンツは生成しません。
つまり、格納されている最初の 3 つのデータは問題なく出力できますが、次の行はプログラムによって表示されません。
list.create(3863,"ジョニー");
私のコードの何が問題なのかを知ることができますか? 前もって感謝します!=)