我具有此功能旨在显示排名系统的层次结构。我希望层次结构能够嵌套任意多次。但是嵌套所有这些“ 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";
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

最佳答案

用户recursionstack来解决此类问题。尝试实现它。如果您遇到问题,请发表。

关于c++ - 如何使此模式重复所需的次数而又不过度嵌套呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22989628/

10-11 22:47
查看更多