我想绘制一个垂直对齐的链表,就像维基共享资源中的那个:
到目前为止,我最好的拍摄是:
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];
}
给出了:
如何设置arrowtail点来自记录中,并将d
记录设置为X
节点?
我已经尝试了tailclip=false
,没有运气。
答案 0 :(得分:1)
您需要设置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];
}
不幸的是,最后一个节点所需的形状不包含在default shapes可用的中。你可以使用postscript或位图图像添加custom shape,如果使用SVG输出,甚至可以添加SVG。