i would like to know how to convert this Binary Heap code to work with a vector of objects instead of a vector of integers.
Assuming the vector which was created is vector
<int>
elements;
BinHeap
void BinHeap::maxHeapify(unsigned int index)
{
unsigned int left, right, maxx;
left = 2*index;
right = 2*index + 1;
// Base case
if (index == 0)
return;
// Check the children, if they exist and pick the larger for swapping
if (left < elements.size() && elements[left] > elements[index])
maxx = left;
else
maxx = index;
if (right < elements.size() && elements[right] > elements[maxx])
maxx = right;
if (maxx != index)
{
int temp = elements[maxx];
elements[maxx] = elements[index];
elements[index] = temp;
maxHeapify(maxx);
}
// Now check the parent, if it exists
maxHeapify(index/2);
}
Node class
class Node
{
private:
int guestID;
string name;
string surname;
string season;
int year;
int nights;
string payMethod;
string purpose;
string membership;
Node* nextPtr;
public:
// Constructor function
Node(int, string, string, string,int, int, string, string, string);
//Accessor functions
int getID() { return guestID; }
string getName() { return name; }
string getSurname() { return surname; }
string getSeason() { return season; }
int getYear() { return year; }
int getNights() { return nights; }
string getpayMethod() { return payMethod; }
string getPurpose() { return purpose; }
string getMembership() { return membership; }
Node* getNext() { return nextPtr; }
string getData();
//Mutator functions
void setID(int num) { guestID = num; }
void setName(string str) { name = str; }
void setSurname(string str) { surname = str; }
void setSeason(string str) { season = str; }
void setYear(int yr) { year = yr; }
void setNights(int totNights) { nights = totNights; }
void setpayMethod(string payment){ payMethod = payment; }
void setPurpose(string str) { purpose = str; }
void setMembership(string str) { membership = str; }
void setNext(Node* ptr){nextPtr = ptr;}
};
Any help would be greatly appreciated