【发布时间】:2016-06-13 01:55:14
【问题描述】:
我有一个对象数组,每个对象都有一个权重值,一些对象附加到另一个成为其父对象的对象。我需要将所有子对象的权重添加到父对象,并且附加到子对象的对象的权重等等必须添加到父对象。
这是迄今为止我最好的方法,但不知何故它最终根本没有改变父母的原始体重:
void showMasterClass::mass_manager(int parent)
{
for (int n = 0; n < total_objects; n++)
{
object[n].setMass(object[n].getEmptyMass());
}
for (int n = 0; n < total_objects; n++)
{
if (object[n].getDockedTo() == parent)
{
object[parent].setMass(object[parent].getMass() + object[n].getMass());
mass_manager_subroutine(n, parent);
}
}
}
void showMasterClass::mass_manager_subroutine(int objeto, int parent)
{
for (int n = 0; n < total_objects; n++)
{
if (object[n].getDockedTo() == objeto)
{
object[parent].setMass(object[parent].getMass() + object[n].getMass());
mass_manager_subroutine(n, parent);
}
}
}
【问题讨论】:
-
无论如何都要发布您的代码,因为这将帮助我们更好地了解您的尝试以及我们如何提供帮助。
-
不要对你的代码感到尴尬。如果没有证据表明你已经努力解决问题,人们会比你的尝试有点混乱(尽管格式正确)更让人恼火。你能举个小例子吗,我很难理解你的描述。谢谢。
-
所以你的目标是以一个结构结束,其中每个数组元素都有一个权重、一个父级(可能为 null)和一个总权重(它自己的权重加上其子树中所有内容的权重) )?
-
你是如何实现父子关系的?每个子项是否包含指向其父项的索引或指针?程序是否必须识别和处理循环依赖?
-
添加了我的代码,感谢您的回复。 @Frank Puffer是的,每个孩子都有一个指向其父母的元素。 @S McCrohan 是的,这正是我们的目标。