将具有多个值的映射转换为树?
给定一组随机分布的键,每个键映射到一组值,如何将其转换为多棵树?
示例数据集
- NB2 => {NC2 ND2}
- ND1 => {NG1 NH1}
- 不适用1 => {NB1}
- NB1 => {NC1 ND1 NE1}
- 不适用2 => {NB2}
- NC1 => {NF1}
- NE1 => {NI1 新泽西1 NK1}
NA 的结果树1
NA1 `-- NB1 |-- NC1 | `-- NF1 |-- ND1 | |-- NG1 | `-- NH1 `-- NE1 |-- NI1 |-- NJ1 `-- NK1
NA2的结果树
NA2 `-- NB2 |-- NC2 `-- ND2
Given a randomly distributed set of keys, with each key mapped to a set of values, how would you transform it into multiple trees?
Example Data Set
- NB2 => {NC2 ND2}
- ND1 => {NG1 NH1}
- NA1 => {NB1}
- NB1 => {NC1 ND1 NE1}
- NA2 => {NB2}
- NC1 => {NF1}
- NE1 => {NI1 NJ1 NK1}
Resulting Tree for NA1
NA1 `-- NB1 |-- NC1 | `-- NF1 |-- ND1 | |-- NG1 | `-- NH1 `-- NE1 |-- NI1 |-- NJ1 `-- NK1
Resulting Tree for NA2
NA2 `-- NB2 |-- NC2 `-- ND2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不知道有任何库方法可以进行这种转换。我就是这样做的。 IMO,这非常简单。
编辑:请注意,如果输入表示一组 DAG(有向无环图),则该算法将“起作用”。然而,我刚刚意识到,生成的一组树将共享输入数据中任何公共子树的 TreeNode 实例。
请注意,我还没有调试这段代码:-)
I'm not aware of any library methods that will do this transformation. Here's how I'd do it. It's pretty straightforward, IMO.
EDIT: Note this algorithm will "work" if the input represents a set of DAGs (Directed Acyclic Graphs). However, I've just realized that the resulting a set of trees will share TreeNode instances for any common subtrees in the input data.
Beware that I haven't debugged this code :-)
当你谈到将它们转化为一组树时,你是在谈论它们在内存中的表示方法吗?
或者也许是我们用来遍历您的键和值集并将它们放入内存中表示的算法?
或者你在谈论图形表示?
When you talk about transforming them into a set of trees, are you talking about the method of representing them in memory?
Or perhaps the algorithm by which we would walk your set of keys and values and put them into that in-memory representation?
Or are you talking about a graphical representation?