Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Q)To class DoubleLinkedList, add method insertBeforeLastNode(E e) that inserts a new node before the last node( list should have at least one node initially, if

Q)To class DoubleLinkedList, add method insertBeforeLastNode(E e) that inserts a new node before the last node( list should have at least one node initially, if not just display an error message).

(here is the code )

make sure to solve it corectly please

thanks

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

public class DoublyLinkedList { private Node header; private Node trailer; private int size = 0;

public DoublyLinkedList() { header = new Node<>(null, null, null); trailer = new Node<>(null, header, null); header.setNext(trailer); }

public int size() { return size; }

public boolean isEmpty() { return size == 0; }

public E first() { if (isEmpty()) return null; return header.getNext().getData(); }

public E last() { if (isEmpty()) return null; return trailer.getPrev().getData(); }

private void addBetween(E e, Node predecessor, Node successor) { Node newest = new Node<>(e, predecessor, successor); predecessor.setNext(newest); successor.setPrev(newest); size++;

}

private E remove(Node node) { Node predecessor = node.getPrev(); Node successor = node.getNext(); predecessor.setNext(successor); successor.setPrev(predecessor); size--; return node.getData(); }

public void addFirst(E e) { addBetween(e, header, header.getNext()); }

public void addLast(E e) { addBetween(e, trailer.getPrev(), trailer); }

public E removeFirst() { if (isEmpty()) return null; return remove(header.getNext()); }

public E removeLast() { if (isEmpty()) return null; return remove(trailer.getPrev()); }

public void printForward() { for (Node tmp = header.getNext(); tmp != trailer; tmp = tmp.getNext()) System.out.println(tmp.getData()); }

public void printBackward() { for (Node tmp = trailer.getPrev(); tmp != header; tmp = tmp.getPrev()) System.out.println(tmp.getData()); } }

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

public class Node { private E data; private Node prev; private Node next;

public Node(E d, Node p, Node n) { data = d; prev = p; next = n; }

public E getData() { return data; }

public Node getNext() { return next; }

public Node getPrev() { return prev; }

public void setNext(Node n) { next = n; }

public void setPrev(Node p) { prev = p; }

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Temporal Databases Research And Practice Lncs 1399

Authors: Opher Etzion ,Sushil Jajodia ,Suryanarayana Sripada

1st Edition

3540645195, 978-3540645191

More Books

Students also viewed these Databases questions

Question

2. Identify issues/causes for the apparent conflict.

Answered: 1 week ago