Question: (There is no main.cpp file for this question you need to create yourself) FAST-Library wants to upgrade its system for storing books. The current

(There is no main.cpp file for this question you need to createyourself) FAST-Library wants to upgrade its system for storing books. The currentsystem is slow, as it is based on arrays. The first planwas to store the data in the form of balanced trees, butFAST management had rejected this idea as it would create difficulties while

(There is no main.cpp file for this question you need to create yourself) FAST-Library wants to upgrade its system for storing books. The current system is slow, as it is based on arrays. The first plan was to store the data in the form of balanced trees, but FAST management had rejected this idea as it would create difficulties while adding thousands of books. Every entry might need to balance the tree that is time consuming. The FAST development team and management team agreed on hashing technique for their new system. You task is to build a system for storing the books in the hash tables. have two types of specifiers for books. The first is author name, while the second is book title. The system will e based on the hash of hash tables. The first hash table contains the author's name. All the books written by a particular author will be stored in the hash-table of that author. Example: Book-1: How to Program in C++ by XYZ Book-2: How to Program in Java by XYZ Book-3: How to Program in Python by XYZ Book-4: How to Program in C++ by ABC Book-5: How to Program in MATLAB by ABC ID 0 1 Author XYZ ABC 4> ID 0 1 2 ID 0 1 Book Title How to Program in C++ How to Program in Java How to Program in Python Book Title How to Program in C++ How to Program in MATLAB In the above example, you have to insert the authors in a separate hash table. In front of author XYZ, there will be another hash table that contains the books of that author. In simple words, you have to link another hash table in front of authors' name. You can perform linear/quadratic/cubic probing in case of collisions. Make sure that your system does not lead to primary clustering. Note: Chaining is not allowed in this question. Tasks: 1) Design hash-function(s) to store the authors name and book names at the correct position (Hash- functions with minimum number of collisions will get more marks). Choose the sizes of the hash tables wisely. 2) Count the number of collisions for each table. 3) Handle the collision cases with probing. 4) Your program must be able to perform insertion and deletion. 5) Your program must also be able to perform different types of searching. a. For example, program should be able to display all books of a particular author. The program must also be able to search book if the title is given. It must display all the books with same title and with different author's names. Searching Example: Query: Author Name is ABC Results (2 books): How to Program in C++, and How to Program in MATLAB Query: Book name is How to Program in C++ Results (2 authors): This book is available with two authors names: ABC, and XYZ 6) Make a proper menu so that admin can use the system 'efficiently. Note: Books data is given. Use this data. Any other data used by the program may lead to zero marks.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!