Impondo a ordenação horizontal de nós em uma árvore .dot

Eu estou tentando recriar um diagrama de exemplo para uma árvore de pesquisa binária com GraphViz. É assim que deve ficar no final:

Esta é a minha primeira tentativa:

digraph G {
    nodesep=0.3;
    ranksep=0.2;
    margin=0.1;
    node [shape=circle];
    edge [arrowsize=0.8];
    6 -> 4;
    6 -> 11;
    4 -> 2;
    4 -> 5;
    2 -> 1;
    2 -> 3;
    11 -> 8;
    11 -> 14;
    8 -> 7;
    8 -> 10;
    10 -> 9;
    14 -> 13;
    14 -> 16;
    13 -> 12;
    16 -> 15;
    16 -> 17;
}

Mas infelizmente o GraphViz não se importa com as posições horizontais da árvore, então eu fico:

Como posso adicionar restrições para que as posições horizontais dos vértices reflitam sua ordenação total?

questionAnswers(1)

yourAnswerToTheQuestion