二分木をGprahvizで簡単に書こうとして、挫折した
Gprahvizで二分木作成にチャレンジしたところ、ノードから左下、右下に出るエッジの方向を制御する方法がわからなくて、挫折した。
digraph { e1 [ label="e" ]; e2 [ label="e" ]; e3 [ label="e" ]; e4 [ label="e" ]; e5 [ label="e" ]; e6 [ label="e" ]; e7 [ label="e" ]; e8 [ label="e" ]; 10 -> 5; 10 -> 15; 5 -> e1; 5 -> 7; 7 -> e2; 7 -> 9; 9 -> e3; 9 -> e4; 15 -> e5; 15 -> 20; 20 -> 18; 20 -> e6; 18 -> e7; 18 -> e8; }
赤で囲んだ部分を正しくする(18を左に、eを右に)方法がどうしてもわからず、挫折。
ノードにレコードを導入することで、一応二分木自体は書くことはできる*1のだが、ソースコードを書くのが面倒になるのは避けられない。出力ノードの位置の制御ができれば、上記ソースコードに少し書き加えるだけでいけそうなんだが。
*1:An Introduction to GraphViz | Linux JournalのListing1とFigure1参照。