图的建立(十字链表、邻接多重表、边集数组)

十字链表

十字链表是邻接表和逆邻接表的组合,是对有向图的优化存储结构,容易求得顶点的出度和入度。除了结构复杂外,其实创建图算法的时间复杂度是和邻接表相同的,因此,在有向图的应用中,十字链表也是非常好的数据结构模型,如果我们在遍历中只关心出度则选择邻接表,反之选择逆邻接表。

边表结点结构特点:tailVex、headVex、headLink、tailLink
tailVex:弧起点的顶点下标
headVex:弧终点的顶点下标
headLink:邻接表
tailLink:逆邻接表

邻接多重表

邻接多重表是对无向图的优化存储结构,容易对边进行删除操作,边表结构仿造十字链表。
邻接多重表的边表结构:ivex iLink jvex jLink
ivex与jvex:与某条边依附的两个顶点在顶点表中的下标
iLink:指向依附顶点 ivex 的下一条边
jLink:指向依附顶点 jvex 的下一条边

边集数组

两个一维数组构成,一个是存储顶点的信息,另一个是存储边的信息,这个边数组每个数据元素由一条边的起点下标、终点下标和权组成。

你可能感兴趣的:(数据结构,图的十字链表,邻接多重表,边集数组)