Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

//class CsusStudent does not need to be implemented. Only class LinkedList needs

ID: 3723416 • Letter: #

Question

//class CsusStudent does not need to be implemented. Only class LinkedList needs to be filled in based on the psuedocode given in the comments.

public class CsusStudent {
// class attributes
private String studentName;
private int studentId;
private String studentAddress;
private String studentPhone;
private String studentEmail;

// constructor
public CsusStudent(String newName, int newId, String newAddress, String newPhone_number, String newEmail){
this.studentName = newName;
this.studentId = newId;
this.studentAddress = newAddress;
this.studentPhone = newPhone_number;
this.studentEmail = newEmail;
}

// setName
public void setName(String newName){
this.studentName = newName;
}

// getName
public String getName(){
return studentName;
}
  
// setID
public void setID(int newId){
this.studentId = newId;
}

// getID
public int getID(){
return studentId;
}  

// setAddress
public void setAddress(String newAddress){
this.studentAddress = newAddress;
}

// getAddress
public String getAddress(){
return studentAddress;
}

// setPhone
public void setPhone(String newPhone_number){
this.studentPhone = newPhone_number;
}

// getPhone
public String getPhone(){
return studentPhone;
}

// setEmail
public void setEmail(String newEmail){
this.studentEmail = newEmail;
}

// getEmail
public String getEmail(){
return studentEmail;
}

// toString
public String toString(){
// return a string value by combining all values from class's attributes
return "studentName = " + studentName + ", studentId = " + studentId + ", studentAddress = "
+ studentAddress + ", studentPhone = " + studentPhone + ", studentEmail = " + studentEmail;
}

}

________________--___________________________--_____________________________--__________________________________--____________________

public class LinkedList {

// Defined Node class

private class Node {

private Object Data = null;

private Node Next = null;

public Node() {

Data = null;

Next = null;

}

public Node(Object element) {

Data = element;

}

public Node(Object o, Node n) {

Data = o;

Next = n;

}   

public void setNext(Node n) {

Next = n;

}

public Node getNext() {  

return Next;

}

public Object getElement() {  

return Data;

}

public void setElement(Object element) {

Data = element;

}

}

// Internal data for LinkedList

private Node head = null;

private Node current = null;

private int size = 0;

// LinkedList constructor

public LinkedList() {

head = null;

current = head;

}

// Move the current position forward one position

public void forward() {

}

// Move the current position backward one position

public void backward() {

}

// Get current object's data element

public Object currentData() {

  

}

  

  

// Add object to the first of the list

public void addFirst(Object o) {

}

// resetCurrent at the first position

public void resetCurrent() {

}

// Add object to the last of the list

public void addLast(Object o) {

}

// Add an object o before the current position

public void insertBefore(Object o) {

}

// Add an object o after the current position

public void insertAfter(Object o) {

}

// Get first object

public Object getFirst() {

}

// Get last object

public Object getLast() {

}

// Remove the first object

public Object removeFirst(){

}

// Remove the last object

public Object removeLast() {

}

// Remove object o from the list

public void remove(Object o) {

}

// Returns the number of elements on the list

public int size() {

return size;

}

// Is the list emptied?

public boolean isEmpty() {

}

// Display a content of a list

public String toString() {

String r = "( HEAD -> ";

// Node l = head.getNext();

Node l = head;

while (l != null) {

r = r + l.getElement() + " -> " ;

l = l.getNext();

}

return r + " )";

}

public static void main(String args[]) {

LinkedList lst = new LinkedList();

// creat instances for testing

CsusStudent instance1 = new CsusStudent("John Doe 1", 1, "1 Somewhere", "916-555-1211", "johndoe1@somewhere.com");

CsusStudent instance2 = new CsusStudent("John Doe 2", 2, "2 Somewhere", "916-555-1212", "johndoe2@somewhere.com");

CsusStudent instance3 = new CsusStudent("John Doe 3", 3, "3 Somewhere", "916-555-1213", "johndoe3@somewhere.com");

CsusStudent instance4 = new CsusStudent("John Doe 4", 4, "4 Somewhere", "916-555-1214", "johndoe4@somewhere.com");

CsusStudent instance5 = new CsusStudent("John Doe 5", 5, "5 Somewhere", "916-555-1215", "johndoe5@somewhere.com");

CsusStudent instance6 = new CsusStudent("John Doe 6", 6, "6 Somewhere", "916-555-1216", "johndoe6@somewhere.com");

CsusStudent instance7 = new CsusStudent("John Doe 7", 7, "7 Somewhere", "916-555-1217", "johndoe7@somewhere.com");

CsusStudent instance8 = new CsusStudent("John Doe 8", 8, "8 Somewhere", "916-555-1218", "johndoe8@somewhere.com");

CsusStudent instance9 = new CsusStudent("John Doe 9", 9, "9 Somewhere", "916-555-1219", "johndoe9@somewhere.com");

// begin adding instance1 to the list

  

  

// test forward and backward for single entry

  

// now add instance2 and instance3 via addFirst and instance4, instance5, instance6 via addLast

  

// move current forward a few times

// insert instance 9 after

  

// remove instance9

  

  

// print out the first and last entries

System.out.println("Show the first entry and last entry:");

  

  

// print out the whole list

System.out.println("Show the whole list:");

// remove entries starting from the last entry

System.out.println("Check for the content of the emptied list");

}

}

Page of 4 Zoom In This lab's objective is to develop methods (see attached diagram) for a linear linked list. The algorithms for these methods will be discussed in your lecture.You are given the following UML class diagram: Class LinkedList private head Node private current: Node size: int insertBefore(o) - Add an object o before the current position. insertAfter(o)- Add an object o after the current position remove(o)- Object o is removed from the list currentData)- Return the current object's data size)-Return the number of objects on the list forwardO- Move the current position forward one position backward0 Move the current position backward one position. resetCurrent)- Reset the current position at the first element addFirst0- Add object to the first of the list addLast)- Add object to the last of the list getFirst- Get first object getLasto-Get last object removeFirsto- Remove first object removeLast- Remove last object

Explanation / Answer

//class CsusStudent does not need to be implemented. Only class LinkedList needs to be filled in based on the psuedocode given in the comments.

class CsusStudent {
// class attributes
private String studentName;
private int studentId;
private String studentAddress;
private String studentPhone;
private String studentEmail;

// constructor
public CsusStudent(String newName, int newId, String newAddress, String newPhone_number, String newEmail){
    this.studentName = newName;
    this.studentId = newId;
    this.studentAddress = newAddress;
    this.studentPhone = newPhone_number;
    this.studentEmail = newEmail;
}

// setName
public void setName(String newName){
    this.studentName = newName;
}

// getName
public String getName(){
    return studentName;
}

// setID
public void setID(int newId){
    this.studentId = newId;
}

// getID
public int getID(){
    return studentId;
}

// setAddress
public void setAddress(String newAddress){
    this.studentAddress = newAddress;
}

// getAddress
public String getAddress(){
    return studentAddress;
}

// setPhone
public void setPhone(String newPhone_number){
    this.studentPhone = newPhone_number;
}

// getPhone
public String getPhone(){
    return studentPhone;
}

// setEmail
public void setEmail(String newEmail){
    this.studentEmail = newEmail;
}

// getEmail
public String getEmail(){
    return studentEmail;
}

// toString
public String toString(){
      // return a string value by combining all values from class's attributes
    return "studentName = " + studentName + ", studentId = " + studentId + ", studentAddress = "
    + studentAddress + ", studentPhone = " + studentPhone + ", studentEmail = " + studentEmail;
}

}
public class LinkedList {

       // Defined Node class

       private class Node {

          private Object Data = null;

          private Node Next = null;

          public Node() {

              Data = null;

              Next = null;

          }

          public Node(Object element) {

              Data = element;

          }

          public Node(Object o, Node n) {

              Data = o;

              Next = n;

          }    

          public void setNext(Node n) {

             Next = n;

          }

          public Node getNext() {

             return Next;

          }

          public Object getElement() {

             return Data;

          }

          public void setElement(Object element) {

             Data = element;

          }

       }

  

       // Internal data for LinkedList

       private Node head = null;

       private Node current = null;

       private int size = 0;

     

       // LinkedList constructor

       public LinkedList() {

          head = null;

          current = head;

       }

     

       // Move the current position forward one position

       public void forward() {

           current = current.Next;

       }

     

       // Move the current position backward one position

       public void backward() {

           Node temp = head , prev =null;
           while(temp!=null && temp !=current){
               prev = temp;
               temp = temp.Next;
           }
           current = prev;

       }

  

       // Get current object's data element

       public Object currentData() {

           if (head == null) {
          
               return null;
           }
           return head.Data;

       }

  

  

       // Add object to the first of the list

       public void addFirst(Object o) {

           Node newNode = new Node(o);
           ++size;
           if (head == null) {
               head = newNode;
               current = newNode;
               return;
           }
      
           newNode.Next = head;
           head = newNode;
           current = head;

       }

     

       // resetCurrent at the first position

       public void resetCurrent() {

           current = null;

       }

     

       // Add object to the last of the list

       public void addLast(Object o) {
           Node newNode = new Node(o);
           ++size;
           if (head == null) {
               newNode.Next = head;
               head = newNode;
               return;
           }
           Node temp = head;
           while (temp.Next != null)
               temp = temp.Next;
      
           temp.Next = newNode;
  

       }

       // Add an object o before the current position

       public void insertBefore(Object o) {

  

       }

     

       // Add an object o after the current position

       public void insertAfter(Object o) {

  

       }

     

       // Get first object

       public Object getFirst() {

           if(head==null)
               return null;
  
           return head.Data;

       }

       // Get last object

       public Object getLast() {

           if(head==null)
               return null;
         
           Node temp = head;
           while(temp.Next!=null)
           temp = temp.Next;
         
           return temp.Data;

       }

       // Remove the first object

       public Object removeFirst(){
           if(head==null)
               return null;
         
           Node temp = head;
           head = head.Next;
         
           return temp;
         

       }

       // Remove the last object

       public Object removeLast() {
         
           if(head==null)
               return null;
         
           Node temp = head, prev = null;
           while(temp.Next!=null){
               prev = temp;
               temp = temp.Next;
           }
         
           if(prev==null && temp!=null)
               head = null;
           else if(prev!=null){
             
               prev.Next = null;
           }
            return temp.Data;
             

       }

       // Remove object o from the list

       public void remove(Object o) {

   if (head == null)
           return ;
      
       Node curr = head;
      
       Node temp = head;
       Node previous = null;
       boolean flag = false;
       while (temp != null) {
  
           if (temp.Data.equals(o)) {
               flag = true;
               break;
           }
           previous = temp;
           temp = temp.Next;
       }
       if (previous != null && flag) {
           previous.Next = temp.Next;
  
       } else if (flag) {
           head = head.Next;
           temp = null;
       }
      
       --size;

       }

     

       // Returns the number of elements on the list

       public int size() {

          return size;

       }

       // Is the list emptied?

       public boolean isEmpty() {

           return head==null;

       }

  

       // Display a content of a list

       public String toString() {

          String r = "( HEAD -> ";

          // Node l = head.getNext();

          Node l = head;

          while (l != null) {

             r = r + l.getElement() + " -> " ;

             l = l.getNext();

          }

          return r + " )";

       }

       public static void main(String args[]) {

          LinkedList lst = new LinkedList();

          // creat instances for testing

          CsusStudent instance1 = new CsusStudent("John Doe 1", 1, "1 Somewhere", "916-555-1211", "johndoe1@somewhere.com");

          CsusStudent instance2 = new CsusStudent("John Doe 2", 2, "2 Somewhere", "916-555-1212", "johndoe2@somewhere.com");

          CsusStudent instance3 = new CsusStudent("John Doe 3", 3, "3 Somewhere", "916-555-1213", "johndoe3@somewhere.com");

          CsusStudent instance4 = new CsusStudent("John Doe 4", 4, "4 Somewhere", "916-555-1214", "johndoe4@somewhere.com");

          CsusStudent instance5 = new CsusStudent("John Doe 5", 5, "5 Somewhere", "916-555-1215", "johndoe5@somewhere.com");

          CsusStudent instance6 = new CsusStudent("John Doe 6", 6, "6 Somewhere", "916-555-1216", "johndoe6@somewhere.com");

          CsusStudent instance7 = new CsusStudent("John Doe 7", 7, "7 Somewhere", "916-555-1217", "johndoe7@somewhere.com");

          CsusStudent instance8 = new CsusStudent("John Doe 8", 8, "8 Somewhere", "916-555-1218", "johndoe8@somewhere.com");

          CsusStudent instance9 = new CsusStudent("John Doe 9", 9, "9 Somewhere", "916-555-1219", "johndoe9@somewhere.com");       

       

          // begin adding instance1 to the list

        

        

          // test forward and backward for single entry

       

        

          // now add instance2 and instance3 via addFirst and instance4, instance5, instance6 via addLast

  

        

          // move current forward a few times

     

          // insert instance 9 after

        

          // remove instance9

        

        

          // print out the first and last entries

          System.out.println("Show the first entry and last entry:");

      

        

          // print out the whole list

          System.out.println("Show the whole list:");

  

     

          // remove entries starting from the last entry

          System.out.println("Check for the content of the emptied list");

  

       }

   }

========================================================

Implemented all the Methods