点号:确定左右两个孩子

问题描述 投票:0回答:2

我想在点(GraphViz)中制作一棵红黑树。但我总是在节点放置方面遇到问题。

到目前为止,这是我的代码(由于放置问题,它尚未完成:

digraph G {
//graph [ratio=.48];
node [style=filled, color=black, shape=circle, width=.6
  fontname=Helvetica, fontweight=bold, fontcolor=white,
  fontsize=24, fixedsize=true];
  B1[label = 35];
    B2[label = 10];
    B3[label = 25];
  B4[label = 40];

  node [style=filled, color=red, shape=circle, width=.6
    fontname=Helvetica, fontweight=bold, fontcolor=white,
    fontsize=24, fixedsize=true];

    R1[label = 15];
    R2[label = 5];
    R3[label = 20];
    R4[label = 30];
    R5[label = 45];

    node  [label = "NIL", style=filled, color=black, shape=record, width=.4,height=.25,
      fontname=Helvetica, fontweight=bold, fontcolor=white,
      fontsize=16, fixedsize=true];
    N1[];
    N2[];
    N3[];
    N4[];
    N5[];
    N6[];
    N7[];
    N8[];
    N9[];
    N10[];

    B1 -> B4;
    B1 -> R1;
    R1 -> B2;
    R1 -> B3;
    B4 -> N1;
    B4 -> R5;

}

所以我得到的是这个:

“红黑树输出”

但是我想要的是:

“想要的树”“>

如您所见,我的代码切换了节点15和40、45和NIL。

即使更改代码中的顺序,结果也不会改变。

我想在点(GraphViz)中制作一棵红黑树。但是我总是在节点放置方面遇到问题。到目前为止,这是我的代码(由于放置问题而未完成):digraph ...

tree graphviz dot red-black-tree
2个回答
0
投票

看起来像添加具有相同等级的显式(不可见)关系可以解决此问题。在这种情况下:


0
投票

节点在图上出现的顺序取决于定义的顺序。

© www.soinside.com 2019 - 2024. All rights reserved.