十字链表的画法

本文转载自来自博客园的竹蕴澜的博文十字链表的画法,仅供学习使用,无任何侵权的意思。

基本概念

十字链表(Orthogonal List)是有向图的另一种链式存储结构。该结构可以看成是将有向图的邻接表和逆邻接表结合起来得到的。

  • 入弧和出弧:入弧表示图中发出箭头的顶点,出弧表示箭头指向的顶点
  • 弧头和弧尾:弧尾表示图中发出箭头的顶点,弧头表示箭头指向的顶点
  • 同弧头和同弧尾:同弧头,弧头相同弧尾不同;同弧尾,弧头不同弧尾相同

画法

以下列有向图为例:

  1. 列出图的所有顶点,并进行编号:画五行含三个方格的横格,每一排最左边那格分别填写各顶点,入弧和出弧的暂时不管

  1. 画出各行对应的顶点表示出弧的所有关系
    右半部分的那些含四个方格的横格代表了和左边顶点相连的点。为了方便之后的连线,可以将弧尾相同的画在同一行将弧头相同的画同一列
    然后在四个方格的前两个空里填写弧尾与弧头,仔细观察可以发现这完就是按照行列号来填写,所以很好填的。

  1. 连线
    • 顶点的三格图
      • 出弧指向同一行的第一个结点
      • 入弧指向列号等于其编号的那一列的第一个结点
    • 右侧的四格方格
      • 同弧头指向本列后序结点,同弧尾指向本行后序结点
      • 若出弧或同弧尾右边没有方格,则为空

上面这个例子不是很好,看看这张图: