frequency_counting

Complete the TODOs in HashTable.py:

create_arr - Complete the create_arr method in HashTable.py. Each element of the hash table (arr) is a linked list. This method creates an array (list) of a given size and populates each of its elements with a LinkedList object. Note: Doing [LinkedList()] * size does not work.

hash_func - Complete the hash_func method in HashTable.py. Create your own hash function. Hash functions are a function that turns each of these keys into an index value that we can use to decide where in our list each key:value pair should be stored.

insert - Complete the insert method in HashTable.py. Should insert a key value pair into the hash table, where the key is the word and the value is a counter for the number of times the word appeared. When inserting a new word in the hash table, be sure to check if there is a Node with the same key in the table already.

print_key_values - Complete the print_key_values method in HashTable.py. Traverse through the every Linked List in the table and print the key value pairs (formatted like the above example)