Add more methods to the doubly linked list class then test them • search(e) // Return one node with 3 values (stuID, stuName, stuScore) which matches a given key e (studentID). • addAfter(e, stuID, stuName, stuScore) //Add a new node with 3 values (stuID, stuName, stuScore) after the node with the key e (studentID). • removeAt(e) //Remove a node which matches a given key e (studentID) • count() //Return a number of nodes of list. • update(stuID, stuName, stuScore) //Update the values of one node two codes below  package DlinkedList; class Node { private A stuID; private B stuName; private C stuScore; private Node next; private Node prev;   public Node(A id, B name, C score) { stuID = id; stuName = name; stuScore = score; next = null; prev = null; } public A getStuID() { return stuID; } public B getStuName() { return stuName;   } public C getStuScore() { return stuScore; } public Node getNext(){ return next; } public Node getPrev(){ return prev; } public void setStuID(A ID) { stuID = ID; } public void setStuName(B name) { stuName = name; }    public void setStuScore(C score) {     stuScore = score;      }   public void setNext(Node n) { next = n; } public void setPrev(Node p) { prev = p; }   public void displayNode() { System.out.println( "ID="+getStuID()+", Name="+getStuName()+", Score="+getStuScore());   } }   package DlinkedList; public class DLinkedList {     private Node header;     private Node trailer;     private int size;          public DLinkedList() {         header = new Node<>(null, null, null);         trailer = new Node<>(null, null, null);         header.setNext(trailer);         trailer.setPrev(header);              }     public int getSize() {         return size;     }     public boolean isEmpty() {         return size==0;     }     public A getFirstStuID() {         return header.getNext().getStuID();     }     public B getFirstStuName() {         return header.getNext().getStuName();     }     public C getFirstStuScore() {         return header.getNext().getStuScore();          }          public A getLastStuID() {         return trailer.getPrev().getStuID();     }     public B getLastStuName() {         return trailer.getPrev().getStuName();     }     public C getLastStuScore() {         return trailer.getPrev().getStuScore();     }          private void addBetween(A id, B name, C score, Node predecessor, Node successor) {         Node newest = new Node<>(id, name, score);         newest.setPrev(predecessor);         newest.setNext(successor);         predecessor.setNext(newest);         successor.setPrev(newest);         size++;         }     public void addFirst(A id, B name, C score) {         addBetween(id, name,score,header,header.getNext());     }     public void addLast(A id, B name, C score) {         addBetween(id, name,score, trailer.getPrev(), trailer);     }     private Node remove(Node node){         Node predecessor = node.getPrev();         Node successor = node.getNext();         predecessor.setNext(successor);         successor.setPrev(predecessor);         size--;         return node;     }     public Node removeFirst(){         if(isEmpty())             return null;         return remove(header.getNext());     }     public Node removeLast(){         if(isEmpty())             return null;         return remove(trailer.getPrev());     }     public Node search(A key){         if(isEmpty())             return null;         Node temp = header.getNext();         do{             if(temp.getStuID()== key)                 return temp;             temp = temp.getNext();             }while ( temp != null);         return null;     }          public void addAfter(A key, A id, B name, C score) {         if(isEmpty())             return;         Node node = search(key);         if(node == null)        return;         addBetween(id, name, score, node, node.getNext());     }          public void display() {         if(isEmpty()) {             System.out.println("Linked list is empty.");             return;         }         Node temp = header.getNext();         do {             temp.displayNode();             temp = temp.getNext();         }while(temp.getNext() !=null);     }     public void addBefore(A key, A id, B name, C score) {         if(isEmpty())             return;         Node node = search(key);         if(node == null)             return;         addBetween( id, name, score, node.getPrev(), node);     }     public Node removeAt( A key){         if (isEmpty())             return null;         Node node = search(key);         if(node == null)             return null;         return remove(node);     }     public Node update(A key, A nid, B nname, C nscore){         if(isEmpty())             return null;         Node node = search(key);         if(node == null)             return null;         node.setStuID(nid);         node.setStuName(nname);         node.setStuScore(nscore);         return node;     } }

icon
Related questions
Question

Add more methods to the doubly linked list class then test them
• search(e) // Return one node with 3 values (stuID, stuName, stuScore) which matches a
given key e (studentID).
• addAfter(e, stuID, stuName, stuScore) //Add a new node with 3 values (stuID,
stuName, stuScore) after the node with the key e (studentID).
• removeAt(e) //Remove a node which matches a given key e (studentID)
• count() //Return a number of nodes of list.
• update(stuID, stuName, stuScore) //Update the values of one node

two codes below 

package DlinkedList;
class Node<A,B,C> {
private A stuID;
private B stuName;
private C stuScore;
private Node<A,B,C> next;
private Node <A,B,C> prev;
 
public Node(A id, B name, C score) {
stuID = id;
stuName = name;
stuScore = score;
next = null;
prev = null;
}
public A getStuID() {
return stuID;
}
public B getStuName() {
return stuName;
 
}
public C getStuScore() {
return stuScore;
}
public Node<A,B,C> getNext(){
return next;
}
public Node<A,B,C> getPrev(){
return prev;
}
public void setStuID(A ID) {
stuID = ID;
}
public void setStuName(B name) {
stuName = name;
}
   public void setStuScore(C score) {
    stuScore = score;
     }
 
public void setNext(Node<A,B,C> n) {
next = n;
}
public void setPrev(Node<A,B,C> p) {
prev = p;
}
 
public void displayNode() {
System.out.println( "ID="+getStuID()+", Name="+getStuName()+", Score="+getStuScore());
 
}
}
 

package DlinkedList;
public class DLinkedList<A,B,C> {
    private Node<A,B,C> header;
    private Node<A,B,C> trailer;
    private int size;
    
    public DLinkedList() {
        header = new Node<>(null, null, null);
        trailer = new Node<>(null, null, null);
        header.setNext(trailer);
        trailer.setPrev(header);
        
    }
    public int getSize() {
        return size;
    }
    public boolean isEmpty() {
        return size==0;
    }
    public A getFirstStuID() {
        return header.getNext().getStuID();
    }
    public B getFirstStuName() {
        return header.getNext().getStuName();
    }
    public C getFirstStuScore() {
        return header.getNext().getStuScore();
    
    }
    
    public A getLastStuID() {
        return trailer.getPrev().getStuID();
    }
    public B getLastStuName() {
        return trailer.getPrev().getStuName();
    }
    public C getLastStuScore() {
        return trailer.getPrev().getStuScore();
    }
    
    private void addBetween(A id, B name, C score, Node<A,B,C> predecessor, Node<A,B,C> successor) {
        Node<A,B,C> newest = new Node<>(id, name, score);
        newest.setPrev(predecessor);
        newest.setNext(successor);
        predecessor.setNext(newest);
        successor.setPrev(newest);
        size++;
        }
    public void addFirst(A id, B name, C score) {
        addBetween(id, name,score,header,header.getNext());
    }
    public void addLast(A id, B name, C score) {
        addBetween(id, name,score, trailer.getPrev(), trailer);
    }
    private Node<A,B,C> remove(Node<A,B,C> node){
        Node<A,B,C> predecessor = node.getPrev();
        Node<A,B,C> successor = node.getNext();
        predecessor.setNext(successor);
        successor.setPrev(predecessor);
        size--;
        return node;
    }
    public Node<A,B,C> removeFirst(){
        if(isEmpty())
            return null;
        return remove(header.getNext());
    }
    public Node<A,B,C> removeLast(){
        if(isEmpty())
            return null;
        return remove(trailer.getPrev());
    }
    public Node<A,B,C> search(A key){
        if(isEmpty())
            return null;
        Node<A,B,C> temp = header.getNext();
        do{
            if(temp.getStuID()== key)
                return temp;
            temp = temp.getNext();
            }while ( temp != null);
        return null;
    }
    
    public void addAfter(A key, A id, B name, C score) {
        if(isEmpty())
            return;
        Node<A,B,C> node = search(key);
        if(node == null)
       return;
        addBetween(id, name, score, node, node.getNext());
    }
    
    public void display() {
        if(isEmpty()) {
            System.out.println("Linked list is empty.");
            return;
        }
        Node<A,B,C> temp = header.getNext();
        do {
            temp.displayNode();
            temp = temp.getNext();
        }while(temp.getNext() !=null);
    }
    public void addBefore(A key, A id, B name, C score) {
        if(isEmpty())
            return;
        Node<A,B,C> node = search(key);
        if(node == null)
            return;
        addBetween( id, name, score, node.getPrev(), node);
    }
    public Node<A,B,C> removeAt( A key){
        if (isEmpty())
            return null;
        Node<A,B,C> node = search(key);
        if(node == null)
            return null;
        return remove(node);
    }
    public Node<A,B,C> update(A key, A nid, B nname, C nscore){
        if(isEmpty())
            return null;
        Node<A,B,C> node = search(key);
        if(node == null)
            return null;
        node.setStuID(nid);
        node.setStuName(nname);
        node.setStuScore(nscore);
        return node;
    }
}

2
3330
3 public class TestDLinkedList {
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public static void main(String[] args) {
DLinkedList dl = new DLinkedList ();
");
System.out.println("\ndisplay;
dl.display();
System.out.println("\naddFirst: ");
dl.addFirst ("101", "Marry", 98.8);
dl.addFirst ("104", "Mark", 84.3);
dl.addFirst ("106", "Joan", 78.0);
dl.addFirst ("109", "Jay", 68.8);
System.out.println("\ndisplay:");
dl.display();
System.out.println("\naddLast: ");
dl.addLast ("103", "Michael", 90.8);
dl.addLast ("107", "Paul", 80.3);
dl.addLast ("105", "Steve", 90.8);
System.out.println("\ndisplay");
dl.display();
System.out.println("\nremoveFirst: ");
System.out.println("\ndisplay");
System.out.println("\nremoveFirst: ");
System.out.println("\ndisplay");
dl.removeFirst();
dl.display();
dl.removeFirst();
dl.display();
System.out.println("\search: ");
Node temp = dl.search ("101");
if (temp!=null) {
}
System.out.println("Found a record: ");
temp.displayNode ();
System.out.println("\nsearch: ");
Transcribed Image Text:2 3330 3 public class TestDLinkedList { 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 public static void main(String[] args) { DLinkedList dl = new DLinkedList (); "); System.out.println("\ndisplay; dl.display(); System.out.println("\naddFirst: "); dl.addFirst ("101", "Marry", 98.8); dl.addFirst ("104", "Mark", 84.3); dl.addFirst ("106", "Joan", 78.0); dl.addFirst ("109", "Jay", 68.8); System.out.println("\ndisplay:"); dl.display(); System.out.println("\naddLast: "); dl.addLast ("103", "Michael", 90.8); dl.addLast ("107", "Paul", 80.3); dl.addLast ("105", "Steve", 90.8); System.out.println("\ndisplay"); dl.display(); System.out.println("\nremoveFirst: "); System.out.println("\ndisplay"); System.out.println("\nremoveFirst: "); System.out.println("\ndisplay"); dl.removeFirst(); dl.display(); dl.removeFirst(); dl.display(); System.out.println("\search: "); Node temp = dl.search ("101"); if (temp!=null) { } System.out.println("Found a record: "); temp.displayNode (); System.out.println("\nsearch: ");
37
38
39
40
41
42
43
44
45
47
48
49
650
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
}
}
}
temp.displaуNоде ();
System.out.println("\nsearch: ");
temp = dl.search ("120");
if (temp!=null) {
}
System.out.println("Found a record: ");
temp.displayNode ();
System.out.println("\nupdate");
System.out.println("\ndisplay:");||
dl.display();
temp = dl.update("101", "101", "Mary.H",99.0);
System.out.println("\nupdated node: ");
temp.displayNode();
System.out.println("\ndisplay:");
dl.display();
System.out.println("\nadd after: ");
dl.addAfter ("101","130", "Ben", 74.3);
System.out.println("\ndisplay");
dl.display();
System.out.println("\nadd before: ");
dl.addBefore("101","135", "Mike", 70.0);
System.out.println("\ndisplay: ");
dl.display();
System.out.println("\nremove at: ");
dl.removeAt ("101");
System.out.println("\ndisplay:");
dl.display();
Transcribed Image Text:37 38 39 40 41 42 43 44 45 47 48 49 650 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 } } } temp.displaуNоде (); System.out.println("\nsearch: "); temp = dl.search ("120"); if (temp!=null) { } System.out.println("Found a record: "); temp.displayNode (); System.out.println("\nupdate"); System.out.println("\ndisplay:");|| dl.display(); temp = dl.update("101", "101", "Mary.H",99.0); System.out.println("\nupdated node: "); temp.displayNode(); System.out.println("\ndisplay:"); dl.display(); System.out.println("\nadd after: "); dl.addAfter ("101","130", "Ben", 74.3); System.out.println("\ndisplay"); dl.display(); System.out.println("\nadd before: "); dl.addBefore("101","135", "Mike", 70.0); System.out.println("\ndisplay: "); dl.display(); System.out.println("\nremove at: "); dl.removeAt ("101"); System.out.println("\ndisplay:"); dl.display();
Expert Solution
steps

Step by step

Solved in 3 steps

Blurred answer