Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

//**************************** DLL.java ******************************* // generic doubly linked list class import java.util.*; public class DLL implements Iterable { private DLLNode head, tail; public DLL() { head

image text in transcribed

//**************************** DLL.java *******************************

// generic doubly linked list class

import java.util.*;

public class DLL implements Iterable {

private DLLNode head, tail;

public DLL() {

head = tail = null;

}

public boolean isEmpty() {

return head == null;

}

public void clear() {

head = tail = null;

}

public T getFirst() {

if (head != null)

return head.info;

else return null;

}

public void addToHead(T el) {

if (head != null) {

head = new DLLNode(el,head,null);

head.next.prev = head;

}

else head = tail = new DLLNode(el);

}

public void addToTail(T el) {

if (tail != null) {

tail = new DLLNode(el,null,tail);

tail.prev.next = tail;

}

else head = tail = new DLLNode(el);

}

public T deleteFromHead() {

if (isEmpty())

return null;

T el = head.info;

if (head == tail) // if only one node on the list;

head = tail = null;

else { // if more than one node in the list;

head = head.next;

head.prev = null;

}

return el;

}

public T deleteFromTail() {

if (isEmpty())

return null;

T el = tail.info;

if (head == tail) // if only one node on the list;

head = tail = null;

else { // if more than one node in the list;

tail = tail.prev;

tail.next = null;

}

return el;

}

public void delete(T el) { // delete the node with an element el;

DLLNode tmp;

for (tmp = head; tmp != null && !el.equals(tmp.info); tmp = tmp.next); //locate the item

if (tmp != null) { // item found

if (head == tail) //the found item was the only one

head = tail = null;

else if (head == tmp) { //the found item is the first

head = head.next;

head.prev = null;

}

else if (tail == tmp) { // the found item is the last

tail = tail.prev;

tail.next = null;

}

else { // the found item is in the middle

tmp.prev.next = tmp.next;

tmp.next.prev = tmp.prev;

}

}

}

public void printAll() {

for (DLLNode tmp = head; tmp != null; tmp = tmp.next)

System.out.print(tmp.info + " ");

}

public T find(T el) {

DLLNode tmp;

for (tmp = head; tmp != null && !tmp.info.equals(el); tmp = tmp.next);

if (tmp == null)

return null;

else return tmp.info;

}

public Iterator iterator() {

return new DLLIterator();

}

private class DLLIterator implements Iterator {

DLLNode tmp = head;

public boolean hasNext() {

return tmp != null;

}

public T next() {

T info = tmp.info;

tmp = tmp.next;

return info;

}

public void remove() {

// not implemented

}

}

// node of generic doubly linked list class

private class DLLNode {

public T info;

public DLLNode next, prev;

public DLLNode() {

next = null; prev = null;

}

public DLLNode(T el) {

info = el; next = null; prev = null;

}

public DLLNode(T el, DLLNode n, DLLNode p) {

info = el; next = n; prev = p;

}

}

}

iv) public void addToTail(DLL list That appends the list received as argument to the end of the current (this) linked list

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

Beginning VB 2008 Databases

Authors: Vidya Vrat Agarwal, James Huddleston

1st Edition

1590599470, 978-1590599471

More Books

Students also viewed these Databases questions

Question

Explain the logic of the EOQ model.

Answered: 1 week ago

Question

5. What decision-making model would you advocate to this person?

Answered: 1 week ago

Question

6. What data will she need?

Answered: 1 week ago

Question

1. How did you go about making your selection?

Answered: 1 week ago