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

JAVA Take the code (it is from the Savitch student data files) listed here and 1

ID: 3777061 • Letter: J

Question

JAVA

Take the code (it is from the Savitch student data files) listed here and

1. make it doubly linked.

2. Add a copy constructor

3. Add a clone method

4. Replace outputList with toString

5. Code an iterator method

6. Keep track of the tail and add a method outputBackwards to prove the list is doubly linked.

Or use the Savitch code in the book for a doubly linked list and add the functionality mentioned above – I think you will learn less that way but it is less work.

To make the node doubly linked change

        private Node<T> link;

to

        private Node<T> next;

        private Node<T> prev;

Test all functionality by hard coding test cases into your demo file.

----------------------------------------------------------------------------------------

public class LinkedList3<T>

{

    private class Node<T>

    {

        private T data;

        private Node<T> link;

        public Node( )

        {

             data = null;

             link = null;

        }

        public Node(T newData, Node<T> linkValue)

        {

            data = newData;

            link = linkValue;

        }

     }//End of Node<T> inner class

    private Node<T> head;

    public LinkedList3( )

    {

        head = null;

    }

    /**

     Adds a node at the start of the list with the specified data.

     The added node will be the first node in the list.

    */

    public void addToStart(T itemData)

    {

        head = new Node<T>(itemData, head);

    }

    /**

     Removes the head node and returns true if the list contains at least

     one node. Returns false if the list is empty.

    */

    public boolean deleteHeadNode( )

    {

        if (head != null)

        {

            head = head.link;

            return true;

        }

        else

            return false;

    }

    /**

     Returns the number of nodes in the list.

    */

    public int size( )

    {

        int count = 0;

        Node<T> position = head;

        while (position != null)

        {

            count++;

            position = position.link;

        }

        return count;

    }

    public boolean contains(T item)

    {

      return (find(item) != null);

    }

    /**

     Finds the first node containing the target item, and returns a

     reference to that node. If target is not in the list, null is returned.

    */

    private Node<T> find(T target)

    {

        Node<T> position = head;

        T itemAtPosition;

        while (position != null)

        {

            itemAtPosition = position.data;

            if (itemAtPosition.equals(target))

                return position;

            position = position.link;

        }

        return null; //target was not found

    }

    /**

     Finds the first node containing the target and returns a reference

      to the data in that node. If target is not in the list, null is returned.

    */

    public T findData(T target)

    {

        return find(target).data;

    }

    public void outputList( )

    {

        Node<T> position = head;

        while (position != null)

        {

            System.out.println(position.data);

            position = position.link;

        }

   }

    public boolean isEmpty( )

    {

        return (head == null);

    }

    public void clear( )

    {

        head = null;

    }

   /*

    For two lists to be equal they must contain the same data items in

    the same order. The equals method of T is used to compare data items.

   */

   public boolean equals(Object otherObject)

    {

        if (otherObject == null)

            return false;

        else if (getClass( ) != otherObject.getClass( ))

            return false;

        else

        {

          LinkedList3<T> otherList = (LinkedList3<T>)otherObject;

            if (size( ) != otherList.size( ))

                return false;

            Node<T> position = head;

            Node<T> otherPosition = otherList.head;

            while (position != null)

            {

                if (!(position.data.equals(otherPosition.data)))

                    return false;

                position = position.link;

                otherPosition = otherPosition.link;

            }

            return true; //no mismatch was not found

        }

    }

}

Explanation / Answer

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

struct node
*h,*temp,*temp1,*temp2,*temp4;

void insert1();
void insert2();
void insert3();
void traversebeg();
void traverseend(int);
void sort();
void search();
void update();
void delete();

int count = 0;

void main()
worker = temp1 = NULL;

printf(" one - Insert at beginning");
printf(" a pair of - Insert at end");
printf(" three - Insert at position i");
printf(" four - Delete at i");
printf(" five - show from beginning");
printf(" vi - show from end");
printf(" seven - look for element");
printf(" eight - kind the list");
printf(" nine - Update associate degree element");
printf(" ten - Exit");

while (1)
temporary worker =(struct node *)malloc(1*sizeof(struct node));
temp-&gt;prev = NULL;
temp-&gt;next = NULL;
printf(" Enter worth to node : ");
scanf("%d", &amp;data);
temp-&gt;n = data;
count++;
}

/* TO insert at starting */
void insert1()

else
  
}

/* To insert at finish */
void insert2()

else
  
}

/* To insert at any position */
void insert3()

else
whereas (i &lt; pos)
  
create();
temp-&gt;prev = temp2;
temp-&gt;next = temp2-&gt;next;
temp2-&gt;next-&gt;prev = temp;
temp2-&gt;next = temp;
}
}

/* To delete a component */
void delete()
parts to delete");
return;
}
else
whereas (i &lt; pos)
  
if (i == 1)
knowledge to be updated : ");
scanf("%d", &amp;data);
printf(" Enter new knowledge : ");
scanf("%d", &amp;data1);
temp2 = h;
if (temp2 == NULL)
  
else
temp2 = temp2-&gt;next;
}

printf(" Error : you wouldn't found in list to update", data);
}

/* To kind the coupled list */
void sort()

}
}
traversebeg();
}