Name the program for this assignment "e_records.cc." The purpose of this program is to give you experience implementing a hash table, handling collisions, and using hashing with a linear function. Hashing is a method that enables access to table items in time that is relatively constant and independent of the items in the table. Hashing uses a hash function and a scheme for resolving collisions. A hash function is a function that maps the search key of a table item into a location that will contain that item. A collision occurs when a hash function maps two or more distinct serach keys into the same location. In this assignment you will write a program that maintains the names, addresses, and telephone numbers of a arbitutary group of people, and thus serves as an address book. You should allow the user to enter a filename of a data file that contains the original contents of the address book. Also, you should be able to enter, delete, modify, or search the data stored in the address book. The person's last name, followed by the person's first name should be the search key. The program should save the address book for later use under the same name the user provided as input initially. Design a class to represent the people in the address book. Call this class "Add_DB". "Address_DB" contains all the information for the people in the address book. Design another class called "Hash_DB" to represent the address book itself. "Hash_DB" is a table ADT. Use a linear function to determine the location of a key in the hash table; and used a binary search tree when handling collisions within "Hash_DB." This means, your hash table is basically a table of pointers to binary search trees, where each binary tree contains the names of the persons whose last names begin with the same first letter. Each node in the binary tree will content a pointer to the the location of where the person's information is stored in "Address_DB." When the phone book is printed, the list of names should be printed in alphabetically order according to last and first names; Also the information pertaining to the person stored in "Address_DB" should be printed, followed by the line number of the information's starting location in "Address_DB." See the sample input file "hash_input" . *We habe to do some changes:add_db replace with [login to view URL] have to read the file into a vector,
## Deliverables
(which is indexed,has a line#).find the person with the line #.Convert the binary tree into a [login to view URL] have to have two copies,save the original under a different name. There is a sample input we have to use.
## Platform
Visual C++ Windows XP