The Team information should be represented as an ascending ordered binary tree. (Keep the tree nodes in order as they are inserted.)
Your search for a Team Id is using a recursive binary tree traversal.
The command file will have a new subcommand, PPRINT, for TEAM. We will be able to pretty print the binary tree of teams. See the output below.
You will be provided with a driver program (cs1713p5Driver.c) (see below)
Your code must be created in a separate C file (p5abc123.c). (see below)
There is a new include file, cs1713p5.h
Several of the functions must be recursive: searchT, insertT, prettyPrintT, printInOrder
We have provided a Makefile to reduce the chances of errors typing in your gcc commands.
Team same as Programming Assignment #4; however, instead of placing it in linked list, you will put it into an ascending ordered binary tree. Some of the data may have changed.
Command Same as assignment 4 plus this new subcommand for TEAM:
TEAM PPRINT This pretty prints the binary tree. You only have to print the Team IDs in a pretty print manner. In the following example, notice that the right most child is printed first. UTSA01 UNKN01 SOUTH1 NEWB01 HACK02 COM001 ALHGHT
You will be provided with a driver program, cs1713p5Driver.c which
1. invokes the driver's processCommandSwitches
2. invokes the driver's getTeams to read the original team information into a binary tree ordered by Team ID using your insertT function.
3. invokes your printTeams to print the original team information.
4. invokes a driver-provided processCommands which
o reads input lines from the command file until eof:
prints the input line
determines command and subcommand
your processGameCommand to process a GAME subcommand
your processTeamCommand to process a TEAM subcommand
5. invokes your printTeams to print the resulting team information
6. You are also provided these functions:
Note: do not change the cs1713p5Driver.c
Your p5abc123.c code:
You should probably copy your p4abc123.c into a file named p5abc123.c.
It must not include cs1713p5Driver.c within your p5abc123.c file. Look at the notes below on Compiling Using the make Utility.
Remove insertLL. We will be using insertT.
Remove searchLL. We will be using searchT.
Receives NodeT *pRoot instead of the linked list pHead.
It should still print the column heading for the table of teams; however, it should invoke printInOrder to print the tree in order.
Add the recursive function printInOrder which prints all the information about teams in order recursively. This is called by printTeams.
Receives NodeT *pRoot instead of the Node **ppHead. Notice that we are not passing the address of pRoot to this function.
Invokes processGame passing pRoot and game
Invokes processGameFix passing pRoot, game, and the two old scores.
Receives NodeT *pRoot instead of the Node *pHead
Uses searchT to find a team in the binary tree. p1 = searchT(pRoot, game.szTeamId1);
Receives NodeT *pRoot instead of the Node *pHead
Uses searchT to find a team in the binary tree.
Receives NodeT **ppRoot instead of the Node **ppHead.
Uses searchT to find a team in the binary tree. You will have to dereference ppRoot. p = searchT(*ppRoot, team.szTeamId1);
The NEW subcommand uses insertT to insert a new team into the binary tree. *ppRoot = insertT(*ppRoot, team);
Add code for the new TEAM PPRINT subcommand. This should invoke prettyPrintT.
Add the function prettyPrintT which prints a binary tree by printing its right most node first. You only have to print the team IDs.
You must create the following routines (see the include file):
insertT - using the reconstruct approach, this recursively inserts a team into the ordered binary tree. This returns a pointer to the referenced subtree which is either the pointer it was passed or a pointer to a new node.
searchT - recursively searches for a Team Id in the ordered binary tree. If found, it returns a pointer to the node that contains it. If not found, it returns NULL.
Please review the cs1713p5.h include file.
Sample Partial Output:
Initial Teams Id Team Name Wins Loss Fee Amt Paid Amt Contact Name Phone Email ALHGHT Cake Eaters 4 4 175.00 100.00 E Z Street (210)555-6666 email@example.com COM001 Comm Eagles 7 1 150.00 75.00 Mae King (210)555-2222 firstname.lastname@example.org HACK02 Hackers 3 5 150.00 75.00 Tom E Gunn (210)555-5555 email@example.com NEWB01 River Rats 0 8 120.00 75.00 Rock D Boat (210)555-4444 firstname.lastname@example.org SOUTH1 Slam Dunk 5 3 120.00 75.00 Jerry Tall (210)555-3333 email@example.com UNKN01 Org New Blk 1 7 150.00 50.00 Bob Wire (210)555-1234 firstname.lastname@example.org UTSA01 Armadillos 8 0 150.00 80.00 Jean E Us (210)555-1111 email@example.com TEAM PPRINT UTSA01 UNKN01 SOUTH1 NEWB01 HACK02 COM001 ALHGHT GAME RESULT UTSA01 NEWB01 55 12
It is not our intention to break the school's academic policy. Projects posted are only used as a reference
and should not be submitted as is. We are not held liable for any misuse of the solutions.
Please see the frequently asked questions page
for further questions and inquiries.
Kindly fill out the form.
Please provide a valid email address and we'll get back to you in less than 24 hours.
We will be sending an invoice through PayPal upon confirmation.
We are a non profit organization however we need an amount to keep this organization running,
and to be able to complete our research and development.