一 概述
邻接多重表是无向图的另一种链式存储结构。在邻接表中,容易求得顶点和边的各种信息,但在邻接表中求两个顶点之间是否存在边而对边执行删除等操作时,需要分别在两个顶点的边表中遍历,效率较低。
二 邻接多重表
邻接多重表同十字链表类似,在邻接多重表中,每条边用一个结点表示,结构如下:
其中,mark为标志域,可用以标记该条边是否被搜索过;ivex和jvex为该边依附的两个顶点在图中的位置;ilink指向下一条依附于顶点ivex的边;jlink指向下一条依附于顶点jvex的边,info为指向和边相关的各种信息的指针域。
每个顶点也用一个结点表示,它包含两个域,分别为存储该顶点相关信息的data域和指示第一条依附于该顶点的边的firstedge域。
在邻接多重表中,所有依附于同一顶点的边串联在同一个链表中,由于每条边依附于两个顶点,由于每条边依附于两个顶点,因此每个边结点同时链接在两个链表中。对无向图而言,其邻接多重表和邻接表的差别仅在于,同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点。
无向图的邻接多重表表示法,邻接多重表的各种基本操作的实现和邻接表的类似。