二分木を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参照。