- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
#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() 尚未声明”。我不明白为什么 - 我都声明了。
最佳答案
bool canDemandBeAnswered(Node* root)
{
if(count(root)>(root.getCapacity()))
这会尝试在 Node *
上调用 getCapacity。但是 Node *
没有名为 getCapacity 的函数——Node
有。
您可以使用 (*root).getCapacity()
或简写 root->getCapacity()
。
if(r.isLeaf())
你在这里遇到了同样的问题。 r
是一个Node *
。
关于C++ 编译器错误 : "isLeaf() has not been declared" - but it was,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146965/
我正在尝试移动节点并根据它们的位置附加 0 或 1,因为我正在进行霍夫曼压缩测试。 但是,当尝试使用来自 javax.swing.tree 的 isLeaf() 方法时。 这是给我带来问题的代码段。
#include #include #include "Node.h" #ifndef HW4_H #define HW4_H using namespace std; /** You are t
我正在尝试按照基本的 CellTree gwt 示例显示类别树。 我所坚持的是确定类别的“叶子”条件。 当类别没有子项时,它就是“is-a-leaf”,对吗?所以,这是我的类别(我使用 Objecti
我找到了以下 Twisted 请求处理程序示例。我不清楚 isLeaf 属性的用途。为什么要在资源上设置它? from twisted.internet import reactor from twi
我正在努力完成教授给我们的二叉树类(class),并且我已经得到了运行得相当好的方法,但是在 isLeaf(E value) 和 isParent(E value) 方面遇到了一些问题。每种方法都有效
isLeaf 和 isReadOnly 有什么区别? 根据https://stackoverflow.com/a/16253663/2656889和https://stackoverflow.com/
我遇到了以下对 IsRoot 的描述, IsAbstract & IsLeaf但是不明白你什么时候会使用它们。 摘自 http://www2.sys-con.com/itsg/virtualcd/do
我是一名优秀的程序员,十分优秀!