Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

public class LinkedList { private Node front; //private int count; //private Node end; public LinkedList(Node f ) { front = f; } public LinkedList() {

image text in transcribed

public class LinkedList { private Node front; //private int count; //private Node end;

public LinkedList(Node f ) { front = f;

}

public LinkedList() { front = null;

} public void addToFront(String d) { Node n = new Node(d, front); front = n; }

public boolean isEmpty() { if(front == null) return true; else return false; }

public void clear() { front = null;

}

public String getFrontData() { return front.getData();

}

public Node getFrontNode() { return front;

} public String toString() { String ts = "["; Node cur = front; while(cur != null) { ts += cur; cur = cur.getNext(); } return ts + "]"; }

public int size() { int count = 0; Node cur = front; while(cur != null) { count++; cur = cur.getNext(); } return count; }

public void removeFront() { if(!isEmpty()) front = front.getNext(); // else // System.out.println(No front to remove!);

}

public void addToEnd(String d) { Node n = new Node(d, null); if(isEmpty()) front = n; else { Node cur = front; while(cur.getNext() != null) cur = cur.getNext(); cur.setNext(n); } }

public void removeLast() { if(!isEmpty()) { if(front.getNext() == null) front = null; else { Node cur = front; while(cur.getNext() != null) cur = cur.getNext(); cur.setNext(null); } //} else { System.out.println(No end to remove!); } }

public int contains(String d) { Node cur = front; boolean found = false; int index = -1;

while(cur != null && !found) { index++; if(cur.getData().equals(d)) found = true; cur = cur.getNext(); } if(!found) index = -1; return index; }

public void add(int index, String d) { if(index >= 0 && index

public void remove(int index) { if(index >= 0 && index

public Node getNode(int index) { Node cur = null; if(index >= 0 && index

public void addAll(LinkedList other) { Node cur = other.getFrontNode(); while(cur != null) { addToEnd(cur.getData()); cur = cur.getNext(); } }

public static LinkedList merge(LinkedList first, LinkedList second) { LinkedList result = new LinkedList();

Node cur = first.getFrontNode(); while(cur != null) { result.addToEnd(cur.getData()); cur = cur.getNext(); }

cur = second.getFrontNode(); while(cur != null) { result.addToEnd(cur.getData()); cur = cur.getNext(); } return result; }

public LinkedList subList(int start, int end) { LinkedList result = new LinkedList(); if(!(start >= end || start size() || end >= size() )) { Node cur = getFrontNode(); for(int i=0; i

public static LinkedList union(LinkedList first, LinkedList second) { LinkedList result = new LinkedList(); Node cur = first.getFrontNode(); while(cur != null) { result.addToEnd(cur.getData()); cur = cur.getNext(); }

cur = second.getFrontNode(); while(cur != null) { if(result.contains(cur.getData()) == -1) result.addToEnd(cur.getData()); cur = cur.getNext(); }

return result; }

public static LinkedList intersection(LinkedList first, LinkedList second) { LinkedList result = new LinkedList(); Node cur = first.getFrontNode(); while(cur != null) { if(second.contains(cur.getData()) != -1) result.addToEnd(cur.getData()); cur = cur.getNext(); }

return result; }

}

public class Node { private String data; private Node next;

public Node(String d, Node n ) { data = d; next = n; } // The usual get/set methods, plus toString() public void setData(String d) { data = d; } public void setNext(Node n) { next = n; } public String getData() { return data; } public Node getNext() { return next; } public String toString() { return data + " --> "; } }

In class, we wrote an implementation for a Stack class using an ArayList to store the underlying data. Write your own Stack class (Stack.java) that uses a LinkedList to store the underlying (String) data. Your implementation should have (at least) a constructor, a push method, a pop method, and a peek method. The LinkedList class you use should be based off of the version we wrote in class (i.e., not using a Java standard library version)

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

Spatial Database Systems Design Implementation And Project Management

Authors: Albert K.W. Yeung, G. Brent Hall

1st Edition

1402053932, 978-1402053931

More Books

Students also viewed these Databases questions

Question

Explain what a feasibility analysis is and why its important.

Answered: 1 week ago

Question

What is the purpose of the Salary Structure Table?

Answered: 1 week ago

Question

What is the scope and use of a Job Family Table?

Answered: 1 week ago