/Lab05

Write a program to do the following: Use the same input seed data you used for Lab 4 (your BST homework) as seed input data into a hash table. Declare a hash table of size 29 elements. To hash your currency objects into the hash table, use the pseudorandom hash scheme - (m*w + n*f) % size - where size = 29, m = 2, n = 3, w = whole value, f = fractional value. For collision resolution, use quadratic probing in the same direction always. Remember to circle around to the start of the array if needed. Your main will first load the data into the hash table and print the number of data items loaded, load factor and number of collisions. Then it will ask the user in a loop to enter a Dollar to search for. If the Dollar object is found in the hash table, it will print the index where found, otherwise it will print 'Invalid Data'. Then it will ask the user if they want to check again or end the program. To submit, upload your code files and screenshot of the console only. For documentation, only name blocks and existing documentation in your Dollar class are needed.

Primary LanguageJava

Lab04

Follow all code styling and submission instructions as outlined for previous labs.

  • Declare and implement a BSTNode ADT with a data attribute and two pointer attributes, one for the left child and the other for the right child. Implement the usual getters/setters for these attributes.
  • Declare and implement a BST as a link-based ADT whose data will be Dollar objects - the data will be inserted based on the actual money value of your Dollar objects as a combination of the whole value and fractional value attributes.
  • For the BST, implement the four traversal methods as well as methods for the usual search, insert, delete, print, count, isEmpty, empty operations and any other needed.
  • Your pgm will use the following 20 Dollar objects to be created in the exact order in your main to seed the tree:
    1. $57.12
    2. $23.44
    3. $87.43
    4. $68.99
    5. $111.22
    6. $44.55
    7. $77.77
    8. $18.36
    9. $543.21
    10. $20.21
    11. $345.67
    12. $36.18
    13. $48.48
    14. $101.00
    15. $11.00
    16. $21.00
    17. $51.00
    18. $1.00
    19. $251.00
    20. $151.00
  • Also, create an output file to write program output as specified in one or more instructions below.
  • After seeding the data, perform your traversal operations in the specific sequence of breadth-first, in-order, pre-order, post-order, ensuring that output is written out to both screen and file concurrently.
  • Then provide interactivity for the user to add/search/delete nodes from the console after the data has been seeded into the application.
  • Perform adequate input data validation when reading data from the user into the tree - if any data item is invalid, ignore the data item and continue to next item but print a message to output (both screen and same output file) to indicate which data items were ignored.
  • Also, provide the user the option to print output of traversals or exit the program. Once the user selects the option to print data or exits the program, the data in the BST should be printed out to both screen and output file in all four traversal methods in the specific sequence of breadth-first, in-order, pre-order, post-order.
  • For submission - upload your BST, Dollar/USD and main code files, screenshots of console window and your output files only.