我具有此功能旨在显示排名系统的层次结构。我希望层次结构能够嵌套任意多次。但是嵌套所有这些“ for / if”语句似乎是不必要的。有人在编写旨在重复这样的功能的函数时有一些技巧吗?
void hierarchy(int x)
{
cout << "HIERARCHY OF COMMAND: " << member[x].name << ", " << member[x].rnk << " [# " << member[x].ID << "]\n";
for (int a = 0; a < member_count; a++)
{
if (member[x].name == member[a].CO)
{
cout << "|---" << member[a].name << ", " << member[a].rnk << " [# "
<< member[a].ID << "]\n";
for (int b = 0; b < member_count; b++)
{
if (member[a].name == member[b].CO)
{
cout << "| |---" << member[b].name << ", " << member[b].rnk << " [# "
<< member[b].ID << "]\n";
for (int c = 0; c < member_count; c++)
{
if (member[b].name == member[c].CO)
{
cout << "| | |---" << member[c].name << ", " << member[c].rnk << " [# "
<< member[c].ID << "]\n";
for (int d = 0; d < member_count; d++)
{
if (member[c].name == member[d].CO)
{
cout << "| | | |---" << member[d].name << ", " << member[d].rnk << " [# "
<< member[d].ID << "]\n";
for (int e = 0; e < member_count; e++)
{
if (member[d].name == member[e].CO)
{
cout << "| | | | |---" << member[e].name << ", " << member[e].rnk << " [# "
<< member[e].ID << "]\n";
}
}
}
}
}
}
}
}
}
}
}
最佳答案
用户recursion或stack来解决此类问题。尝试实现它。如果您遇到问题,请发表。
关于c++ - 如何使此模式重复所需的次数而又不过度嵌套呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22989628/