instructions

advertisement
In this assignment you will create a linked list. A linked list consists of a list of class objects
which are connected via pointers. Your linked list in this assignment will be used to store
word information read in from an input file. In particular, you will store each word
encountered in the file along with the number of times that word was found.
Linked List Creation
1. Create a class called “word” which stores a word as a string (name) along with an
integer equal to the number of times it was found in the file (numTimes = 1). In
addition, the class will contain two pointers, one which will point to the next word
object in the list (next) and for extra credit one which will point to the previous word
object in the list (previous).
1. Please note, using the previous pointer is more challenging and thus will be
extra credit (+5 points) if properly used.
2.
3.
Create an array of word objects. (suggested steps below)
1. Create a function that creates a count of unique words in the list
(no repeats). Use this count as the size of your word array. It
might be helpful to have a string array of unique
words uwords with initial length 1000, and compare each word to
the array's values and add any new unique words to the next
empty spot in the array (a string's default value is NULL).
2. Create a bool function called inList(string) which returns true if
the string already appears as a name of a word object in the list,
and false otherwise.
3. Create a function called addWord(string) which will insert a new
word object with name equal to the string parameter if it is not
already contained in the list.
4. Do not include repeated words. If a repeated word is found
then increment the numTimes counter of the word object.
You will also want to create a pointer startOfList which will point to the
first word object in the list (which originally will be set to null).
4. Create a function called insert(word) which will insert a word object into the list,
alphabetically according to the name of the word object.
1. For example, if your list currently contains the word objects with names
“bubble”, “cat”, and “dog” and you call insert(newWord) with word object
newWord whose name variable is “cobra”, the function will insert this word
object between the two word objects “cat” and “dog”. This means the “next”
pointer in the “cat” object will now point to the newWord object, the “previous”
pointer in the newWord object will point to the “cat” object, the “next” pointer
in the newWord object will now point to the “dog” object, and so on. To find
the point of insertion, simply begin with the start of the list pointer and use the
next (and previous) pointers to traverse the list and find the place for the word
to be inserted.
2. Sty setting the startOfList to the first word in your list.
5. Create a function display(string) which prints to the file with name equal to the string
parameter, an alphabetical list of all words contained in the list along with the
number of times they appeared in the input file.
The input file you will use is called “LLwords.txt”. Note that for simplicity, all the words in this
file are lower case. Your goal will be to read in all the words contained in that file, and
output the alphabetical list of words along with the number of times they appear to an output
file called “LLoutput.txt”.
Correctness
No errors
3 points
File I/O
Use of file input and output
6 points
Pointers
Use of pointers
6 points
Class
Use of Classes
3 points
Accuracy
Correctness of output file
3 points
functions
Correctness of list functions
6 points
Style
Variable names, comments, indentationTOTAL 3 points
30 points
Extra Credit Previous
+5 points
Download