本文转载自来自博客园的竹蕴澜的博文十字链表的画法,仅供学习使用,无任何侵权的意思。
基本概念
十字链表(Orthogonal List)是有向图的另一种链式存储结构。该结构可以看成是将有向图的邻接表和逆邻接表结合起来得到的。
- 入弧和出弧:入弧表示图中发出箭头的顶点,出弧表示箭头指向的顶点
- 弧头和弧尾:弧尾表示图中发出箭头的顶点,弧头表示箭头指向的顶点
- 同弧头和同弧尾:同弧头,弧头相同弧尾不同;同弧尾,弧头不同弧尾相同
画法
以下列有向图为例:
- 列出图的所有顶点,并进行编号:画五行含三个方格的横格,每一排最左边那格分别填写各顶点,入弧和出弧的暂时不管
- 画出各行对应的顶点表示出弧的所有关系
右半部分的那些含四个方格的横格代表了和左边顶点相连的点。为了方便之后的连线,可以将弧尾相同的画在同一行,将弧头相同的画同一列。
然后在四个方格的前两个空里填写弧尾与弧头,仔细观察可以发现这完就是按照行列号来填写,所以很好填的。
- 连线
- 顶点的三格图
- 出弧指向同一行的第一个结点
- 入弧指向列号等于其编号的那一列的第一个结点
- 右侧的四格方格
- 同弧头指向本列后序结点,同弧尾指向本行后序结点
- 若出弧或同弧尾右边没有方格,则为空
- 顶点的三格图
上面这个例子不是很好,看看这张图: