Due: part 1 due 10/4, the rest due 10/5 Files should go in ~/HW/lab10/ For the programs, I'll give you correct working versions and a labcheck at some point, maybe. Note - try these problems out on small text files. A large text file you can try is /u1/junk/kinne/shakespeare.txt 1) Study the words.c, words.h, bst.c, bst.h, simple_bst.c files, and come see me for an oral quiz sometime before WHEN? I will ask a few questions about the code and give you 0, 1/2, or 1 point for each based on whether you actually understand what is going on with the code. 4 points total. 2) simple_bst2.c - is the same as simple_bst.c but instead of printing all of the counts you instead print only the word with the highest count. In case of ties, output the alphabetically smaller one. 2 points. Hint: copy/paste print_bst into your simple_bst2.c, call it findLargest, and ... 3) simple_bst3.c - now the program asks for a word to lookup (printf/scanf) and prints out the count. Note - convert the word to lower case before doing the lookup. If the word is not found, print that it is not found. 2 points. Hint: call lookup_bst 4) simple_bst4.c - now the program prints out the total count for all words that started with each letter - so 26 counts are printed, (optional - and also the % of the total count for each first letter). 2 points. Hint: same as 2, it's a tree traversal. Use int counts[26]; or int counts[256]; init to 0, call doCounts, then print. 5) simple_bst5.c - same as bst4, but now do the counts based off the second letter in each word (don't include 1 letter words in the counts). 2 points. Hint: very similar to 4, get that working first. 6) simple_bst6.c - print the full list of counts from highest count to lowest. This problem is NOT graded or worth any points. There are many ways to do this. The way I suggest is to create a separate bst2.c, bst2.h that does comparisons based on the counts rather than the word, and insert all of the nodes into a second BST, and then print out of that one. Note - for grading, I run the following and check if your output is the same as mine. I take off 2 points if a program didn't compile or wasn't done, and 1 point if it was wrong. Not looking at the code at all, just seeing if you get the right output. cd HW/lab10 mv Makefile Makefile.backup cp ~jkinne/courses/202/lab10/Makefile . rm -f simple_bst2 simple_bst3 simple_bst4 simple_bst5 make ./simple_bst2 /u1/junk/kinne/shakespeare_1000_lines.txt ./simple_bst3 /u1/junk/kinne/shakespeare_1000_lines.txt the ./simple_bst4 /u1/junk/kinne/shakespeare_1000_lines.txt | grep "t:" ./simple_bst5 /u1/junk/kinne/shakespeare_1000_lines.txt | grep "w:" Word with maximum count - and: 200 jkinne@cs:~/courses/202/lab10$ Word to look up: the: 182 jkinne@cs:~/courses/202/lab10$ t: 1141 jkinne@cs:~/courses/202/lab10$ w: 61