[英]Implementing LinkedList methods from scratch
我正在用Java中的LinkedList進行練習。 我買了一本書,其中的一項練習是使用一個單鏈表創建一個學生目錄。 該目錄可以存儲學生的全名和gpa。
我需要為方法removeFirst,removeLast,insertFirst,insertLast,getStudent等(通常在鏈表的迭代器中構建)實現並編寫代碼。 我不知道在哪里創建這些自定義迭代器。 目的是能夠在我的主目錄中創建類型為StudentDirectory的鏈表,並能夠使用自定義方法刪除,添加,獲取和生成鏈表中的學生列表。 這使我相信所有這些方法都必須存在於StudentDirectory類中,但是不幸的是我不知道如何開始。
我已經發布了代碼,但希望朝着正確的方向前進。 我不希望有任何完整的解決方案,因為我希望自己能做到這一點,而不是復制別人的代碼。 我了解我需要遍歷鏈表中的節點來遍歷鏈表,但我不知道如何/在何處聲明節點頭
public class studentDirectory {
private String fullName;
private double gpa;
public studentDirectory(String name, double gpa){
fullName = name;
this.gpa = gpa;
}
public void setGpa(double grade){
gpa = grade;
}
public void setName(String name){
fullName = name;
}
public double getGpa(){
return gpa;
}
public String getName(){
return fullName;
}
public void insertAtEnd(studentDirectory lastItem){
}
public void insertAtStart(studentDirectory firstItem){
}
public void getStudent(studentDirectory student){
}
public void updateGpa(studentDirectory update){
}
public void removeFirst(studentDirectory first){
}
public void removeLast(studentDirectory last){
}
public void generateStudentList(){
}
我認為您在這里混淆了一些概念。 列表應該是通用的,即它不應該知道其包含的數據類型。 因此,您應該從列表本身中分離出學生數據,最好是使列表通用:
public class LinkedList<T>{
// your LinkedList needs nodes:
static class Node<T>{
Node<T> next;
T value;
}
Node<T> rootNode;
}
public class Student{}
現在您的學生目錄可以建模為LinkedList<Student>
您列出的某些方法在LinkedList類中是有意義的(insertAtStart,insertAtEnd),而任何特定於學生的內容都應移至Student類。
而且您的LinkedList類也將需要一個Node類
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.