Implement a spell checker by using the hash table with quadratic probing. Given a document your program should output all of the misspelled words. For each misspelled word you should also provide a list of candidate corrections from the dictionary that can be formed by applying one of the following rules to the misspelled word:
Your program should run as follows:
spellcheck document file dictionary file
You will be provided with a small document named turing.txt and a dictionary file with approximately 100k words named wordsEn.txt. There is also a file named turing_key.txt that includes six misspelled words in turing.txt that your program should be able to correct.
Note that there may be other words in the document that are not in the dictionary due to the limited size and scope of the dictionary. You do not have to correct those misspellings.