Question: Binary Search Tree Your program should take the following inputs: 1. Student ID (any value between 1000 to 1100) NO DUPLICAT ES 2. Student first

Binary Search Tree

Your program should take the following inputs:

1. Student ID (any value between 1000 to 1100) NO DUPLICAT ES

2. Student first name (max. 20 characters)

3. Student last name, (max. 20 characters)

4. Student scores (float/double), eg. 85.4

5. Zip code (may be a string)

You have to create a structure Student with above information. Then create a Binary Search Tree where each node in the BST contains a Student.

Note1: Student ID (left child) < Student ID (parent) < Student ID (right) Your program should be able to take records of a minimum of 5 students. After taking the records, you should provide 7 functionalities to the user.

1. Print records prints records of all students.

2. Add a new record - take a new record from the user for a new student. Create a node for the new student and add it to the BST (Student ID value must satisfy the BST property as provided in Note1).

3. Delete record(s) to delete a record, ask for the last name of the student from the user. If there are multiple students with same last name, you must delete all of their records ( you have to delete corresponding nodes and adjust the BST accordingly).

4. S earch by Zip code prints records of all students with a given zip code.

5. Search by score range take two scores max, min; and then print records of all students who have scores between [max, min] (inclusive).

6. Find the median score compute the median score and print it. Also, print how many students are above this median score (do not forget to sort the values in the nodes to compute median) .

7. Exit the program terminate on a specific input from the user. Let that specific input be an integer of value 0.

You should print the record in the following format:

First Name: firstname1, Last Name: lastname1, Score: score1 Zip code: code1

First Name: firstname2, Last Name: lastname2, Score: score2 Zip code: code2 . . .

You should write each functional ity from 1 - 7 in separate functions. You should provide a menu to the user as following:

For inputs: Please indicate number of records you want to enter (min 5): #of records After user gives the number of records, you should inform the user how to enter the records: Please input records of students (enter a new line after each record), with following format first name last name score zip code After user gives the inputs for the records, inform the user about the functionalities:

Print records (press 1 ) Add a new record (press 2) Delete record(s) (press 3) Search by zip code (press 4) Search by score range (press5) Find median score (press 7) Exit the program (press 0) After user chooses functionality, your program performs that and provides this menu again to select another option. This goes on until user presses 0.

Instruction: Do not forget to use - malloc for a new node - free to delete it.

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 Databases Questions!