linked_list implements a generic linked list. It allows duplicate keys (but only inasmuch as it does not check for them). We expect to be able to insert arbitrary key-and-value pairs into the a list and then find them later by searching for the key. We perform two test cases: test #1: keys of type double, values of type double test #2: keys of type string, values of type double Throughout this file, we use the "key => value" notation in order to succinctly denote a key-and-value pair. test #1: doubles => doubles operation expected result ----------------- ----------------- insert(1. => 2.) insert(3. => 4.) insert(5. => 6.) search(1.) search returns 2. search(3.) search returns 4. search(5.) search returns 6. insert(3. => 7.) search(8.) (key not found) search(3.) search returns 7. actual results: searching for key 1.000000: found value 2.000000 searching for key 3.000000: found value 4.000000 searching for key 5.000000: found value 6.000000 searching for key 8.000000: (not found) searching for key 3.000000: found value 7.000000 test #2: strings => doubles operation expected result ----------------- ----------------- insert("one", 2) insert("two", 4) insert("three", 6) search("one") 2. search("three") 6. search("five") (key not found) insert("three", 7) search("eight") (key not found) search("three") 7. acutal results: searching for key "one": found value 2.000000 searching for key "three": found value 6.000000 searching for key "five": (not found) searching for key "eight": (not found) searching for key "three": found value 7.000000