私はgraphvizに次のグラフを持っています:
次のようなツリーのような画像を取得できるように、graphvizにグラフ内のノードを繰り返させるにはどうすればよいですか?
私はあなたがgraphviz内でグラフのこの変更を行うことができるとは思わない。必要な構造で、graphvizに別のグラフをフィードする必要があります。このグラフは、次のようなプロセスで取得できます(擬似コード)。
function visit(path: a list of nodes):
let n be the last node on the path
for every child c of n:
write (a copy of) c to output
if c is not in path:
visit(path + [c])
write root to output
visit([root])
このリストの代わりに、再帰呼び出しの前にpath
ノードをマークvisited
し、呼び出し後にそのフラグを削除することもできます。
function visit(n: a node):
mark n as visited
for every child c of n:
write (a copy of) c to output
if c is not marked as visited:
visit(c)
mark n as not visited
write root to output
visit(root)