[英]addAfter() Singly Linked List Implementation in Java
嗨,stackoverflow 社區!
我正在嘗試為我的 SinglyLinkedList 實現 addAfter() 方法,我認為我做對了,但沒有打印出來。 很想看到你們對我可能缺少的東西的見解:
public class LinkedList {
private EmployeeNode head;
private EmployeeNode tail;
private int size;
public void addAfter(EmployeeNode node, Employee newEmployee) {
EmployeeNode newNode = new EmployeeNode(newEmployee);
newNode.setNext(node.getNext());
node.setNext(newNode);
size++;
if(tail == null) {
tail = newNode;
}
}
}
*為了保持代碼簡潔,我沒有添加其他方法,但其他所有方法都可以正常工作,例如 append()、addToFront()、removeFromEnd()、printList() 等。
主要方法:
public class Main {
public static void main(String[] args) {
Employee janeSmith = new Employee("Jane", "Smith", 44);
Employee maryJames = new Employee("Mary", "James", 34);
Employee johnDoe = new Employee("John", "Doe", 78);
Employee andrewJackson = new Employee("Andrew", "Jackson", 24);
EmployeeNode node = new EmployeeNode(maryJames);
LinkedList list = new LinkedList();
list.addToFront(janeSmith);
list.addToFront(maryJames);
list.addToFront(johnDoe);
list.addAfter(node, andrewJackson);
list.printList();
}
**Employee 類只有 firstName、lastName 和 id 實例變量,如上述實例所示。
員工節點類:
public class EmployeeNode {
private Employee employee;
private EmployeeNode next;
public EmployeeNode(Employee employee) {
this.employee = employee;
}
public Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
public EmployeeNode getNext() {
return next;
}
public void setNext(EmployeeNode next) {
this.next = next;
}
public String toString() {
return employee.toString();
}
}
當你說
EmployeeNode 節點 = 新 EmployeeNode(maryJames);
您正在創建一個包含 maryJames並且對 next 沒有值的節點。
比你說的
addToFront(瑪麗詹姆斯)
您正在創建一個包含 maryJames 的不同EmployeeNode。 這個 EmployeeNode 具有通過 addFront(method) 正確設置的“next”元素(我假設)。
當你說
list.addAfter(node, andrewJackson);
您正在使用沒有設置“下一個”的 EmployeeNode。 並且 addAfter() 方法將無法正常工作。
您需要使用的EmployeeNode 實例是LinkedList 的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.