2016-04-22 32 views
0

在一個簡單的二叉樹,我是能夠使圖像看起來正確的加入無形的節點和不可見的邊緣,比如來自:如何在簡單的二叉樹中選擇一個節點在哪一邊?

digraph 
{ 
     vertex_1 [label="A"]; 
     vertex_2 [label="B"]; 
     vertex_2 -> vertex_1 [label="Left"]; 
} 

主要生產:

enter image description here

到:

digraph 
{ 
     vertex_1 [label="A"]; 
     vertex_2 [label="B"]; 
     vertex_0 [style=invis]; 
     vertex_2 -> vertex_1 [label="Left"]; 
     vertex_2 -> vertex_0 [style=invis]; 
} 

其產生:

enter image description here

但當我那招用4節點圖(它最初是直上直下的)這裏是我的了:

digraph 
{ 
     vertex_1 [label="A"]; 
     vertex_2 [label="B"]; 
     vertex_3 [label="F"]; 
     vertex_4 [label="G"]; 
     vertex_01 [style=invis]; 
     vertex_02 [style=invis]; 
     vertex_03 [style=invis]; 
     vertex_4 -> vertex_3 [label="Left"]; 
     vertex_3 -> vertex_1 [label="Left"]; 
     vertex_1 -> vertex_02 [style=invis]; 
     vertex_4 -> vertex_03 [style=invis]; 
     vertex_3 -> vertex_01 [style=invis]; 
     vertex_1 -> vertex_2 [label="Right"]; 
} 

它生產:

enter image description here

顯然我想讓B在A的右側。我試着將不可見的邊緣語句的順序和實際的邊從B切換到A,比如哪一個先到達,但沒有區別NCE。我如何告訴程序在特定的一端放置一個特定的節點或邊緣?

回答

1

對於從左到右的順序,節點創建順序是相關的。左節點必須在其右兄弟之前創建。

digraph 
{ 
    vertex_1 [label="A"]; 
    vertex_02 [style=invis]; 
    vertex_2 [label="B"]; 
    vertex_3 [label="F"]; 
    vertex_4 [label="G"]; 
    vertex_01 [style=invis]; 
    vertex_03 [style=invis]; 
    vertex_4 -> vertex_3 [label="Left"]; 
    vertex_3 -> vertex_1 [label="Left"]; 
    vertex_1 -> vertex_02 [style=invis]; 
    vertex_4 -> vertex_03 [style=invis]; 
    vertex_3 -> vertex_01 [style=invis]; 
    vertex_1 -> vertex_2 [label="Right"]; 
} 

enter image description here