20162330 第十周 蓝墨云班课 十字链表
作业要求
- 画出附件中有向图的十字链表:(附件见下图)
示例分析
-
示例如下:
-
分析:
① 首先可以标出各个顶点的序号;
② 找到每个顶点对应的入弧和出弧,可以进行标注;
③ 对于每一行的链表,都会有对应的以该行序号为弧尾的链表,并且用上一个链表的同弧尾指向下一个链表的弧尾;
④ 对于同弧头的链表,使用该链表的同弧头指向纵向对应的弧头;
⑤ 如果只有一个入弧,或者只有一个出弧,从而缺少同弧尾或者同弧头指向的链表,将同弧头或者同弧尾置为空。 -
之所以被称为“十字链表”,是因为这个结构将行的单链表和列的单链表结合起来存储稀疏矩阵(大部分元素为 0 的矩阵)。可以看成是将有向图的邻接表和逆邻接表结合起来得到的一种链表。
实现过程
-
所以除了b为弧尾,a为弧头的链表有对应的同弧尾之外(同弧尾对应b→e),其他链表都没有同弧头和同弧尾指向的顶点。