Question: File 1 public interface BagInterface { /** * Gets the current number of entries in this bag. * * @return The integer number of entries

File 1

public interface BagInterface {

/**

* Gets the current number of entries in this bag.

*

* @return The integer number of entries currently in the bag.

*/

public int getCurrentSize();

/**

* Sees whether this bag is empty.

*

* @return True if the bag is empty, or false if not.

*/

public boolean isEmpty();

/**

* Adds a new entry to this bag.

*

* @param newEntry The object to be added as a new entry.

* @return True if the addition is successful, or false if not.

*/

public boolean add(T newEntry);

/**

* Removes one unspecified entry from this bag, if possible.

*

* @return Either the removed entry, if the removal. was successful, or

* null.

*/

public T remove();

/**

* Removes one occurrence of a given entry from this bag.

*

* @param anEntry The entry to be removed.

* @return True if the removal was successful, or false if not.

*/

public boolean remove(T anEntry);

/**

* CSC220 ASMT02 PART01

* Removes all occurrences of the given entries

*

* @param entries

*/

public void removeAllOccurences(T [] entries);

/**

* Removes all entries from this bag.

*/

public void clear();

/**

* Counts the number of times a given entry appears in this bag.

*

* @param anEntry The entry to be counted.

* @return The number of times anEntry appears in the bag.

*/

public int getFrequencyOf(T anEntry);

/**

* Tests whether this bag contains a given entry.

*

* @param anEntry The entry to locate.

* @return True if the bag contains anEntry, or false if not.

*/

public boolean contains(T anEntry);

/**

* Retrieves all entries that are in this bag.

*

* @return A newly allocated array of all the entries in the bag. Note: If

* the bag is empty, the returned array is empty.

*/

public T[] toArray();

// public T[] toArray(); // Alternate

// public Object[] toArray(); // Alternate

/**

* Creates a new bag that combines the contents of this bag and anotherBag.

*

* @param anotherBag The bag that is to be added.

* @return A combined bag.

*/

// public BagInterface union(BagInterface anotherBag);

/**

* Creates a new bag that contains those objects that occur in both this bag

* and anotherBag.

*

* @param anotherBag The bag that is to be compared.

* @return A combined bag.

*/

// public BagInterface intersection(BagInterface anotherBag);

/**

* Creates a new bag of objects that would be left in this bag after

* removing those that also occur in anotherBag.

*

* @param anotherBag The bag that is to be removed.

* @return A combined bag.

*/

// public BagInterface difference(BagInterface anotherBag);

} // end BagInterface

File 2.

public final class LinkedBag implements BagInterface {

private Node firstNode; // Reference to first node

private int numberOfEntries;

public LinkedBag() {

firstNode = null;

numberOfEntries = 0;

} // end default constructor

/**

* Sees whether this bag is empty.

*

* @return True if this bag is empty, or false if not.

*/

@Override

public boolean isEmpty() {

return numberOfEntries == 0;

} // end isEmpty

/**

* Gets the number of entries currently in this bag.

*

* @return The integer number of entries currently in this bag.

*/

@Override

public int getCurrentSize() {

return numberOfEntries;

} // end getCurrentSize

/**

* Adds a new entry to this bag.

*

* @param newEntry The object to be added as a new entry

* @return True if the addition is successful, or false if not.

*/

@Override

public boolean add(T newEntry) // OutOfMemoryError possible

{

// Add to beginning of chain:

Node newNode = new Node(newEntry);

newNode.next = firstNode; // Make new node reference rest of chain

// (firstNode is null if chain is empty)

firstNode = newNode; // New node is at beginning of chain

numberOfEntries++;

return true;

} // end add

/**

* Retrieves all entries that are in this bag.

*

* @return A newly allocated array of all the entries in this bag.

*/

@Override

public T[] toArray() {

// The cast is safe because the new array contains null entries

@SuppressWarnings("unchecked")

T[] result = (T[]) new Object[numberOfEntries]; // Unchecked cast

int index = 0;

Node currentNode = firstNode;

while ((index

result[index] = currentNode.data;

index++;

currentNode = currentNode.next;

} // end while

return result;

} // end toArray

/**

* Counts the number of times a given entry appears in this bag.

*

* @param anEntry The entry to be counted.

* @return The number of times anEntry appears in this bag.

*/

@Override

public int getFrequencyOf(T anEntry) {

int frequency = 0;

int counter = 0;

Node currentNode = firstNode;

while ((counter

if (anEntry.equals(currentNode.data)) {

frequency++;

} // end if

counter++;

currentNode = currentNode.next;

} // end while

return frequency;

} // end getFrequencyOf

/**

* Tests whether this bag contains a given entry.

*

* @param anEntry The entry to locate.

* @return True if the bag contains anEntry, or false otherwise.

*/

@Override

public boolean contains(T anEntry) {

boolean found = false;

Node currentNode = firstNode;

while (!found && (currentNode != null)) {

if (anEntry.equals(currentNode.data)) {

found = true;

} else {

currentNode = currentNode.next;

}

} // end while

return found;

} // end contains

// Locates a given entry within this bag.

// Returns a reference to the node containing the entry, if located,

// or null otherwise.

private Node getReferenceTo(T anEntry) {

boolean found = false;

Node currentNode = firstNode;

while (!found && (currentNode != null)) {

if (anEntry.equals(currentNode.data)) {

found = true;

} else {

currentNode = currentNode.next;

}

} // end while

return currentNode;

} // end getReferenceTo

/**

* Removes all entries from this bag.

*/

@Override

public void clear() {

while (!isEmpty()) {

remove();

}

} // end clear

/**

* Removes one unspecified entry from this bag, if possible.

*

* @return Either the removed entry, if the removal was successful, or null.

*/

@Override

public T remove() {

T result = null;

if (firstNode != null) {

result = firstNode.data;

firstNode = firstNode.next; // Remove first node from chain

numberOfEntries--;

} // end if

return result;

} // end remove

/**

* Removes one occurrence of a given entry from this bag, if possible.

*

* @param anEntry The entry to be removed.

* @return True if the removal was successful, or false otherwise.

*/

@Override

public boolean remove(T anEntry) {

boolean result = false;

Node nodeN = getReferenceTo(anEntry);

if (nodeN != null) {

nodeN.data = firstNode.data; // Replace located entry with entry in first node

firstNode = firstNode.next; // Remove first node

numberOfEntries--;

result = true;

} // end if

return result;

} // end remove

private class Node {

private T data; // Entry in bag

private Node next; // Link to next node

private Node(T dataPortion) {

this(dataPortion, null);

} // end constructor

private Node(T dataPortion, Node nextNode) {

data = dataPortion;

next = nextNode;

} // end constructor

} // end Node

} // end LinkedBag

File 3

public class LinkedBagDemo {

public static void main(String[] args) {

// CSC220 ASMT02 PART01 Tester

System.out.println("- Creating an empty bag.");

BagInterface aBag = new LinkedBag();

displayBag(aBag);

// Adding strings

String[] contentsOfBag = {"A", " ", " ", "G", "B", "A", " ", "d", "A", "o", "o", "B", "A", "A"};

testAdd(aBag, contentsOfBag);

// Removing all occurence of the given entries from a bag

String[] testString = { "A", "B", " " };

aBag.removeAllOccurences(testString);

displayBag(aBag);

} // end main

// Tests the method add.

private static void testAdd(BagInterface aBag, String[] content) {

System.out.print("- Adding to the bag: \t\t\t\t");

for (String content1 : content) {

aBag.add(content1);

System.out.print(content1 + " ");

} // end for

System.out.println();

displayBag(aBag);

} // end testAdd

// Tests the method toArray while displaying the bag.

private static void displayBag(BagInterface aBag) {

System.out.print("- The bag contains " + aBag.getCurrentSize()

+ " string(s), as follows: \t");

Object[] bagArray = aBag.toArray();

for (Object bagArray1 : bagArray) {

System.out.print(bagArray1 + " ");

} // end for

System.out.println();

} // end displayBag

} // end LinkedBagDemo

File 1 public interface BagInterface { /** * Gets the current number

Define the method removeA110ccurrences for the class LinkedBag that removes all occurrences of the given entries from a bag. Your program's output should be identical to this output: Output-CSC220 (run) run: 1 -Creating an empty bag. - The bag contains 0 string(s), as follows Adding to the bag: - The bag contains 14 string(s), as follows A A BooAd A BG A -The bag contains 4 string (s), as follows:Go o d BUILD SUCCESSFUL (total time: 0 seconds) A GBA d A o o BAA

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!