Question: Finish The CompareByName() Comparison Function In StudentDb.C. Link To The C Files: Https://Easyupload.Io/Fahwbe StudentDb.C: // Implementation Of The Student DB ADT #Include #Include #Include #IncludeFinish

Finish The CompareByName() Comparison Function In StudentDb.C. Link To The C Files: Https://Easyupload.Io/Fahwbe StudentDb.C: // Implementation Of The Student DB ADT #Include #Include #Include #IncludeFinish the compareByName() comparison function in StudentDb.c.

Link to the C files: https://easyupload.io/fahwbe

StudentDb.c:

// Implementation of the Student DB ADT

#include #include #include

#include "List.h" #include "StudentDb.h" #include "Tree.h"

struct studentDb { Tree byZid; Tree byName; };

//////////////////////////////////////////////////////////////////////// // Comparison functions

/** * Compares two records by zid only and returns: * - A negative number if the first record is less than the second * - Zero if the records are equal * - A positive number if the first record is greater than the second */ int compareByZid(Record r1, Record r2) { return RecordGetZid(r1) - RecordGetZid(r2); }

/** * Compares two records by name (family name first) and then by * zid if the names are equal, and returns: * - A negative number if the first record is less than the second * - Zero if the records are equal * - A positive number if the first record is greater than the second */ int compareByName(Record r1, Record r2) { // TODO: Complete this function return 0; }

////////////////////////////////////////////////////////////////////////

StudentDb DbNew(void) { StudentDb db = malloc(sizeof(*db)); if (db == NULL) { fprintf(stderr, "error: out of memory "); exit(EXIT_FAILURE); }

db->byZid = TreeNew(compareByZid); // TODO: Modify this line to use compareByName once you have // implemented it db->byName = TreeNew(compareByZid); return db; }

void DbFree(StudentDb db) { TreeFree(db->byZid, false); TreeFree(db->byName, true); free(db); }

////////////////////////////////////////////////////////////////////////

bool DbInsertRecord(StudentDb db, Record r) { if (TreeInsert(db->byZid, r)) { TreeInsert(db->byName, r); return true; } else { return false; } }

////////////////////////////////////////////////////////////////////////

bool DbDeleteByZid(StudentDb db, int zid) { Record dummy = RecordNew(zid, "", ""); Record r = TreeSearch(db->byZid, dummy);

if (r != NULL) { TreeDelete(db->byZid, r); TreeDelete(db->byName, r); RecordFree(r); RecordFree(dummy); return true; } else { RecordFree(dummy); return false; } }

////////////////////////////////////////////////////////////////////////

Record DbFindByZid(StudentDb db, int zid) { Record dummy = RecordNew(zid, "", ""); Record r = TreeSearch(db->byZid, dummy); RecordFree(dummy); return r; }

////////////////////////////////////////////////////////////////////////

List DbFindByName(StudentDb db, char *familyName, char *givenName) { // TODO: Complete this function return ListNew(); }

////////////////////////////////////////////////////////////////////////

void DbListByZid(StudentDb db) { TreeListInOrder(db->byZid); }

void DbListByName(StudentDb db) { // TODO: Complete this function }

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!