簡體   English   中英

從頭開始實現LinkedList方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM