我正在构建一个显示公司员工层次结构的Web应用程序。用户可以选择任何员工和网络大小,我需要显示该员工/经理的报告层次结构的大小。例如:如果一名员工有1000名成员(直接下属和间接报告),并且如果用户希望看到这个用户的大小为100的网络,那么我需要折叠子树或不在他下面展开,以便整体在UI中看到的节点< = 100。
这是我到目前为止所得到的。
T (*) [N]
我所做的是向节点添加一个bool isVisited属性,然后在BFS中遍历树,将它们标记为已访问,直到达到最大大小。如果对于ex:我们希望最大网络大小为10,而员工E1有3个指示D1,D2和D3,则不会创建余额树bcoz。 D1,D2和D3依次有20个报告,然后我们在第一级扩展D1,D2,D3,然后继续扩展D1并在我们看到D1的6个报告后停止。这不起作用。
我希望只有在我们能够扩展所有指令而不会达到最大网络限制时才扩展员工,否则将他/她的子树保留为折叠状态。
我该怎么做?