The following Java implementation of a class Node is given p

The following Java implementation of a class
Node is given:
private class Node<Comparable>
{
    Node()
{
      this(null, null);
    }
Node(Comparable d)
{
      this(d, null);
    }
    Node(Comparable d, Node n)
{
      data = d;
      next = n;
    }
    Comparable data;
    Node next;
}
Assume that a singly linked list is implemented with a header node, but no tail node, and
that it maintains only a reference to the header node. Using the class Node described above, write a MySortedSingleList class in Java includes methods to:
(a)
boolean contains( Object x )
- test if a value x is contained in the linked list.
(b)
boolean add( Object x )
- add a value x if it is not already contained in the linked list.
(c)
boolean remove(Object x)
- remove a value x if it is contained in the linked list maintaining the singly linked list in sorted order.

Solution

Hi, Please find my implementation.

Please let me know in case of any issue.

public class MySortedSingleList {

   private class Node<Comparable>

   {

       Node()

       {

           this(null, null);

       }

       Node(Comparable d)

       {

           this(d, null);

       }

       Node(Comparable d, Node n)

       {

           data = d;

           next = n;

       }

       Comparable data;

       Node<Comparable> next;

   }

   Node<Comparable> head;

   public MySortedSingleList() {

       head = null;

   }

   boolean contains(Object x){

       Node<Comparable> temp = head;

       while(temp != null){

           if(temp.data.equals(x))

               return true;

           temp = temp.next;

       }

       return false;

   }

   boolean add(Object x ){

       if(contains(x))

           return false;

       Comparable obj = (Comparable)x;

       Node<Comparable> newNode = new Node<Comparable>(obj);

      

       if(head == null){

           head = newNode;

       }else if(head.data.compareTo(obj) > 0){

           newNode.next = head;

           head= newNode;

       }else{

           Node<Comparable> temp = head;

           while(temp.next != null){

               if(temp.next.data.compareTo(obj) > 0){

                   break;

               }

               temp = temp.next;

           }

           newNode.next = temp.next;

           temp.next = newNode;

          

       }

       return true;

   }

  

   boolean remove(Object x){

      

       Comparable obj = (Comparable)x;

      

       if(head == null) // base case, list is null

           return false;

      

       if(head.data.compareTo(obj) == 0){ // first element is equal to x

           head = head.next;

           return true;

       }

      

       Node<Comparable> temp = head;

       while(temp.next != null){

           if(temp.next.data.compareTo(obj) == 0){

               temp.next = temp.next.next;

               return true;

           }

           temp = temp.next;

       }

       return false; // x is not in linked list

      

   }

}

The following Java implementation of a class Node is given: private class Node<Comparable> { Node() { this(null, null); } Node(Comparable d) { this(d, nul
The following Java implementation of a class Node is given: private class Node<Comparable> { Node() { this(null, null); } Node(Comparable d) { this(d, nul
The following Java implementation of a class Node is given: private class Node<Comparable> { Node() { this(null, null); } Node(Comparable d) { this(d, nul
The following Java implementation of a class Node is given: private class Node<Comparable> { Node() { this(null, null); } Node(Comparable d) { this(d, nul

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site