Question: DoublyLinkedList.java QUESTION Task 1. Please implement two functions, public void remove(Node currentNode) and public void insertAfter(Node currentNode, Node newNode) , for class DoublyLinkedList . The

DoublyLinkedList.java

QUESTION

Task 1. Please implement two functions, public void remove(Node currentNode) and public void insertAfter(Node currentNode, Node newNode), for class DoublyLinkedList. The function signatures and hints are already provided. Please see the comments and provide your solution.

Task 2. Use the existing code provided in the main() function and test the two functions.

Note: Although you are not allowed to change or delete the existing code in main(), you can add more code as you want for test purposes.

Main.java

public class Main { public static void main(String[] args) { LinkedList numList = new LinkedList(); Node nodeA = new Node(14); Node nodeB = new Node(2); Node nodeC = new Node(20); Node nodeD = new Node(31); Node nodeE = new Node(16); Node nodeF = new Node(55);

numList.append(nodeA); // Add 14 numList.append(nodeB); // Add 2, make the tail numList.append(nodeC); // Add 20, make the tail

numList.prepend(nodeD); // Add 31, make the head

numList.insertAfter(nodeB, nodeE); // Insert 16 after 2 numList.insertAfter(nodeC, nodeF); // Insert 55 after tail, 55 becomes new tail

// Output list System.out.print("List eles after inserting nodes: "); numList.printList();

// Remove the tail node, then the head node numList.remove(nodeF); numList.remove(nodeD); numList.remove(nodeB);

// Output final list System.out.print("List eles after removing nodes: "); numList.printList(); } } DoublyLinkedList.java

class Node { public int data; public Node next; public Node previous;

public Node(int initialData) { data = initialData; next = null; previous = null; } }

class LinkedList { private Node head; private Node tail; public LinkedList() { head = null; tail = null; } public void append(Node newNode) { if (head == null) { head = newNode; tail = newNode; } else { tail.next = newNode; newNode.previous = tail; tail = newNode; } } public void prepend(Node newNode) { if (head == null) { head = newNode; tail = newNode; } else { newNode.next = head; head.previous = newNode; head = newNode; } } public void printList() { Node node = head; while (node != null) { System.out.print(node.data + " "); node = node.next; } System.out.println(); } public void insertAfter(Node currentNode, Node newNode) { // provide your implementation // Your implementation goes here. } public void remove(Node currentNode) { // provide your implementation // Your implementation goes here.

} }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!