1

我想绘制一个垂直对齐的链表,例如来自 Wikimedia Commons 的链表:

信用:维基共享资源

到目前为止,我最好的镜头是:

digraph foo {
        rankdir=LR;
        node [shape=record];
        a [label="{ <data> 12 | <ref> }"]
        b [label="{ <data> 99 | <ref> }"];
        c [label="{ <data> 37 | <ref> }"];
        d [shape=box];
        a:ref -> b:data [arrowhead=vee, arrowtail=dot, dir=both];
        b:ref -> c:data [arrowhead=vee, arrowtail=dot, dir=both];
        c:ref -> d      [arrowhead=vee, arrowtail=dot, dir=both];
}

这使:

在此处输入图像描述

如何将箭头点设置为源自记录内,并将d记录设置为显示为X节点?

我试过tailclip=false了,没有运气。

4

1 回答 1

2

您需要设置tailclip=false 指示边缘尾端的罗盘点:

digraph foo {
        rankdir=LR;
        node [shape=record];
        edge [tailclip=false];
        a [label="{ <data> 12 | <ref> }"]
        b [label="{ <data> 99 | <ref> }"];
        c [label="{ <data> 37 | <ref> }"];
        d [shape=box];
        a:ref:c -> b:data [arrowhead=vee, arrowtail=dot, dir=both];
        b:ref:c -> c:data [arrowhead=vee, arrowtail=dot, dir=both];
        c:ref:c -> d      [arrowhead=vee, arrowtail=dot, dir=both];
}

图形输出

不幸的是,最后一个节点所需的形状不包含在可用的默认形状中。您可以使用 postscript 或位图图像添加自定义形状,如果使用SVG输出,甚至可以添加 SVG。

于 2013-03-19T12:17:48.303 回答