In this exercise you have to implement program to be settled by a game screenshots linking words. The aim of the game is, given an initial and a final word, finding a "ladder" that links the two words where a "ladder" between two words w1 and w2 is a sequence of words that starts from w1 u leads to w2 in which each word differs from the next word in just one location. For example, the words great and small are linked through their ladder:
great treat tread triad trial trill twill swill still stall small
Note 1: A necessary condition for the existence ladder between two words are the words have the same length. Shaw above example is a word with 5 letters. In pursuit of the words may be up to 8 letters.
Note 2: There are pairs of words that are not connected by any ladder
Your program should take as an argument (command line) the name of a file containing a dictionary. Each line of the file will contain one word stands out from the next by using the newline character (' n').
[url removed, login to view] [url removed, login to view]
At the start of program execution, the file given as a parameter in the program should be read and stored in an appropriate data structure. Then, your program should ask the user for a word pair that is required to find the ladders. Finally, it should be offered through a menu, the following procedures:
Calculate and print the screen of a staircase that links the two words given by the user (if any). Also printed on the screen the time taken in milliseconds to find this solution.
Calculate and print the screen of the shortest ladder that connects the two words given by the user (if any). Also printed on the screen time that is needed in milliseconds to find this solution.
Exit from program
Note 1: To implement the backward algorithm you can use the Abstract Data Type - Stack. To find the shortest ladder will require the implementation of Abstract Data Type – Queue
Note 2: Additionally, you can use dictionaries from the website:
[url removed, login to view]:wordlists:about:start.