逐层取得一产品结构下的部件名/编号/层次号

例如有一产品结构

A下有两个子部件A1和A2,A1下面有A11和A12,A2下面有A21和A22

现在我想用代码取得如下结构(A 是第1层 )

编号  部件名称  层次

A       A1             2

A       A2             2

A1    A11            3

A1    A12            3

A2    A21           3

A2   A22           3  

我可以递归取到一个父部件下所有的子部件,要分层取

 

如果通过递归来实现,结果是:
A   A1
A1 A11
A1 A12
A   A2
A2 A21
A2 A22
是按树状输出的。
而你是要按象你以上列出的输出是吗?
如果是这样,我觉得也不难。

也相当于递归,只不过把原来的深度搜索改为广度搜索,请参考以下的思路:
1)根据顶级部件(层级1)获取其所有一级子件(层级2),输出这些一级子件的同时把这些一级子件放在一个Vector中;
2)循环获取Vector中的每个零件(层级2),如果没有子件,如果有子件,则输出的同时,把子件(层级3)都放在另一个Vector中;
3)以此类推,继续输出层级3的子件(层级4)并把他们放在新的Vector中;

可以用两个Vector轮流切换使用,使用前先清空即可。
直到Vector中为空递归即结束。

 

从根节点开始逐层递归,把每次递归的的子部件放到一个Vector中,并设置一变量,每递归一次便加1,

可以达到效果

你可能感兴趣的:(逐层取得一产品结构下的部件名/编号/层次号)