#include <cstdlib>
#include <iostream>
#include "Node.h"
#ifndef HW4_H
#define HW4_H
using namespace std;
/**
You are to implement the two functions in this class.
You can add any other method or members to it as well.
However, you cannot change their signature.
**/
class HW4{
public:
int count(Node* r) const
{
if(r->next==NULL&&r->bro==NULL) { return 0;}
if(r.isLeaf())
{
return ((1+count(r->next)+count(r->bro)));
}
count(r->next);
}
/*
This method will return true if the tree rooted at node sn can answer
the demand induced by its leaves.
*/
bool canDemandBeAnswered(Node* root)
{
if(count(root)>(root.getCapacity()))
{
return 0;
exit(0);
}
else
{
return (canDemandBeAnswered(root->next)&&canDemandBeAnswered(root->bro));
}
}
/*
This method should return a linked list of nodes representing the
customers with the overall highest revenue.
The resulting list should conform to the capacity limitations.
*/
// Node* getBestCustomers(Node* root);
};
#endif
#include <cstdlib>
#ifndef NODE_H
#define NODE_H
/**
The Node class. You must implement the two methods isLeaf() and addChild(Node*) below.
Otherwise, you can add any methods or members your heart's desire.
The only limitation is that they have to be in this file.
**/
class Node {
private:
int capacity;
int price;
public:
/**
Hint: to be used for saving the Node's children and for returning the linked list
**/
Node* next;
Node* bro;
Node(){
capacity = 0;
price = 0;
}
Node(int capacity_){
capacity = capacity_;
price = 0;
}
//should return true if this node has no children, false otherwise.
//this method adds a child to this node.
int getCapacity(){
return capacity;
}
int getPrice(){
return price;
}
void setPrice(int price_){
price = price_;
}
bool isLeaf()
{
if((this->next)->capacity==0)
return 1;
else return 0;
}
void addChild(Node* child)
{
Node* temp;
if(this->next!=NULL)
{
temp=this->next;
child->bro=temp;
this->next=child;
}
else
this->next=child;
}
};
#endif
我收到以下错误:“isLeaf() 尚未声明”。我不明白为什么-我都宣布了。