Due: 2/16/2007 Instructions: Use files called hw3.cpp and list.h, list.cpp You may wish to add node.h and node.cpp. g++ hw3.cpp list.cpp [node.cpp] -o hw3 //(compile) Design and write a program which reads in a linked list of strings from the user. You should have a sort (sort) and a binary search function (search) as a natural part of the linked list class. Also, write a print function (print) that prints the entire linked list. Write a function which destroys all the dynamically allocated data (release) in your linked list. Write a function to get input (getinput). Your linked list class should also have an appropriate constructor. Separate interface and implementation appropriately through the use of list.h and list.cpp (and node.h, node.cpp if desired). Hand in to me: README describing difficulties, issues or general comments. Answer the following: What happens if you print after you call the destruction function? hw3.cpp should look like this: #include using namespace std; #include "list.h" int main() { list l; l.getinput(); l.print(); l.sort(); string s; cout << "Input string to search: "; cin >> s; if(l.search(s) != -1) // search returns an index, -1 is a failure cout << s << " not found. " << endl; else cout << s << " found at index " << i << endl; l.print(); l.release(); } enscript version of your source files: enscript -2Gr -Pd106 hw3.cpp list.cpp list.h [node.cpp] [node.h] a scripted version of your execution, with several attempts: enscript -2Gr -Pd106 hw3.script