解决类继承算法
我有一个包含类继承信息的对列表,如下所示
[
[Person, null],
[Person, SpecialPerson], // Person extends SpecialPerson
[SpecialPerson, VerySpecialPerson], // SpecialPerson extends VerySpecialPerson
]
是否有任何特定的算法可以压平此信息?
像这样:
人->特殊人员 ->非常特别的人
I have a list of pairs with class inheritance information like this
[
[Person, null],
[Person, SpecialPerson], // Person extends SpecialPerson
[SpecialPerson, VerySpecialPerson], // SpecialPerson extends VerySpecialPerson
]
Is there any particular algorithm to flatten this information?
Like this:
Person -> SpecialPerson -> VerySpecialPerson
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最后,它归结为 DAG(有向无环图)。因此,您将进行广度优先搜索或深度优先搜索。您只需要树的简化情况。
示例(BFS,伪代码,未经测试):
这假设您的意思是
[null,Person]
,而不是相反。请注意,它在每个结果的开头生成一个null
,这与您的示例不同。In the end, it boils down to a DAG (directed acyclic graph). Therefore you would do a breadth-first search or depth-first search. You only need the simplified case for trees.
Example (BFS, pseudo-code, untested):
This assumes that you meant
[null,Person]
, instead of the other way round. Note that it produces anull
at the start of every result, differing from your example.