Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

please complete the size function . I have the LinkedListST class below: public class LinkedListST { private Node first; // the linked list of key-value

please complete the size function. I have the LinkedListST class below:

public class LinkedListST, Value extends Comparable> {

private Node first; // the linked list of key-value pairs

// a helper linked list data type

private class Node {

private Key key;

private Value val;

private Node next;

public Node(Key key, Value val, Node next) {

this.key = key;

this.val = val;

this.next = next;

}

}

/**

* Initializes an empty symbol table.

*/

public LinkedListST() {

first = null;

}

/**

* get

*

* Returns the value associated with the given key in this symbol table.

*/

public Value get(Key key) {

if (key == null) throw new NullPointerException("argument to get() is null");

for (Node x = first; x != null; x = x.next) {

if (key.equals(x.key))

return x.val;

}

return null;

}

/**

* put

*

* Inserts the specified key-value pair into the symbol table, overwriting the old

* value with the new value if the symbol table already contains the specified key.

* Deletes the specified key (and its associated value) from this symbol table

* if the specified value is null.

*/

public void put(Key key, Value val) {

if (key == null) throw new NullPointerException("first argument to put() is null");

if (val == null) {

delete(key);

return;

}

for (Node x = first; x != null; x = x.next) {

if (key.equals(x.key)) {

x.val = val;

return;

}

}

first = new Node(key, val, first);

}

/**

* delete *

* Removes the specified key and its associated value from this symbol table

* (if the key is in this symbol table).

*/

public void delete(Key key) {

if (key == null) throw new NullPointerException("argument to delete() is null");

first = delete(first, key);

}

/* delete helper function

* delete key in linked list beginning at Node x

* warning: function call stack too large if table is large

*

*/

private Node delete(Node x, Key key) {

if (x == null) return null;

if (key.equals(x.key)) {

return x.next;

}

x.next = delete(x.next, key);

return x;

}

public Iterable keys() {

Queue theKeys = new Queue();

for ( Node temp = first; temp != null; temp=temp.next) {

theKeys.enqueue(temp.key);

}

return theKeys;

}

/* you should not modify anything above this line */

/**

* size

* size returns the number of key-value pairs in the symbol table.

* it returns 0 if the symbol table is empty.

*/

public int size () {

return -1; // ToDo 1 fix this

}

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

Machine Learning And Knowledge Discovery In Databases European Conference Ecml Pkdd 2022 Grenoble France September 19 23 2022 Proceedings Part 4 Lnai 13716

Authors: Massih-Reza Amini ,Stephane Canu ,Asja Fischer ,Tias Guns ,Petra Kralj Novak ,Grigorios Tsoumakas

1st Edition

3031264118, 978-3031264115

More Books

Students also viewed these Databases questions