ノードツリーを渡す関数があります。 関数はこの形式でノードツリーを印刷するようになっている:再帰関数を使用してノードツリーを印刷する方法
root
node
node
node
node
node
node
node
node
私はそれを行う方法のまわりで私の頭をラップするように見える傾けます。 これは私がこれまでに得たものである:
void IterateTree(Node &rNode)
{
printf("\t\n");
std::cout << rNode.Name() << std::endl;
int i = 0;
for (std::list<Node>::iterator it = rNode.childs.begin(); it != rNode.childs.end(); ++it)
{
printf("%d: ", i);
IterateTree(*it);
printf("\b");
i++;
}
}
、私の質問は:正しいインデントでノードツリーを反復し、印刷の標準的な方法はありますか?
私にはうまく見えますが、ちょっと別のパラメータ 'depth'を追加するだけで、子供をインデントする程度を知ることができます – softwarenewbie7331