gpt4 book ai didi

java - 从头开始实现 LinkedList 方法

转载 作者:行者123 更新时间:2023-12-01 09:26:55 25 4
gpt4 key购买 nike

我正在练习java中的LinkedList。我买了一本书,其中一个练习是使用单链表创建学生目录。该目录可以存储学生的全名和gpa。

我需要实现并编写removeFirst、removeLast、insertFirst、insertLast、getStudent等方法的代码(这些方法通常内置在链表的迭代器中)。我不知道在哪里创建这些自定义迭代器。目标是能够在我的 main 中创建一个 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 类

关于java - 从头开始实现 LinkedList 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39759842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com