我知道每个节点的父节点。它存储在单位unordered_map
中。每个节点只是一个数字,其中零表示根。如何从该信息中有效地创建树?
struct node {
int id;
unordered_set<node> children;
};
可能会发生一些节点根本没有连接到根节点。那些分离的链可以被忽略,并且不需要成为结果树的一部分。
如果需要,请询问更多信息。
答案 0 :(得分:3)
创建一个节点指针数组。
然后浏览地图,将数组中给定索引处的节点添加到其父节点数组中索引处节点的children
。
然后索引0
的节点将成为树的根。