如何从节点列表构建树'父母?

时间:2014-05-24 11:12:32

标签: c++ algorithm tree hierarchy

我知道每个节点的父节点。它存储在单位unordered_map中。每个节点只是一个数字,其中零表示根。如何从该信息中有效地创建树?

struct node {
    int id;
    unordered_set<node> children;
};

可能会发生一些节点根本没有连接到根节点。那些分离的链可以被忽略,并且不需要成为结果树的一部分。

如果需要,请询问更多信息。

1 个答案:

答案 0 :(得分:3)

创建一个节点指针数组。

然后浏览地图,将数组中给定索引处的节点添加到其父节点数组中索引处节点的children

然后索引0的节点将成为树的根。