1 邻接矩阵

图的邻接矩阵表示属于图的顺序存储结构。邻接矩阵可以唯一地表示图。

用一个一维数组存放顶点信息,一个二维数组(矩阵)存放顶点间的相邻关系。

1.1 有向图和无向图的邻接矩阵

下面的有向图与无向图对应的矩阵分别是A和B:

十字链表怎么画_十字链表存储稀疏矩阵_十字链表

1.2 网络(带权图)及邻接矩阵:

十字链表_十字链表怎么画_十字链表存储稀疏矩阵

邻接矩阵的C语言描述:

# 100 //将最大顶点数高为100

char ;

int ;

vex[]; //顶点表

edges[][]; //邻接矩阵,即边表

int n,e; //顶点数和边数

} ; //是以邻接矩阵存储的图类型

2 邻接表

2.1 无向图邻接表

邻接表( List)是图的一种顺序存储与链式存储相结合的存储方法。邻接表表示法类似于树的孩子链表表示法。就是对于图G中的每个顶点vi,将所有邻接于vi的顶点vj链成一个单链表,这个单链表就称为顶点vi的邻接表,再将所有顶点的领接表表头放到数组中,就构成了图的邻接表。

邻接表把邻接矩阵的n行改为n个单链表,把同一个顶点发出的边链接在同一个称为边链表(出边表)的单链表中,单链表的每一个结点代表一条边,叫做边结点,结点中保存有与边相关联的另一顶点的顶点下标dest和指向同一链表中下一边结点的指针link。

十字链表怎么画_十字链表存储稀疏矩阵_十字链表

十字链表怎么画_十字链表_十字链表存储稀疏矩阵

由上图可见,相对于邻接矩阵的边关系会存储n*n个元素信息(如果是n个顶点的话),而邻接表则会小于n*n个信息,也就是会忽略掉顶点无连接(边)的信息。

邻接表由于各边链入边链表的顺序可以不同,所以不能唯一地表示图;

在邻接表中,统计某顶点i的出边表所含结点的个数,即可得到该顶点的出度;

在邻接表表示中有两种结点结构:

顶点表由顶点域和指向第一条 邻接边的指针域构成。

边表(邻接表)由邻接结点域和指向下一条邻接边的指针域构成。

如下图所示:

十字链表怎么画_十字链表存储稀疏矩阵_十字链表

对于网,其边表需再增设一个存储边上信息(如权值)的域(info),如下图所示:

十字链表怎么画_十字链表_十字链表存储稀疏矩阵

图的邻接表的存储表示可以用C语言描述如下:

# 100 //最大顶点数

node //边表结点

int ; //邻接点域

node *next; //指向下一个邻接点的指针域

} ; //若要表示边上信息,则应增加一个数据域info

vnode //顶点表结点

; //顶点域,顶点的名字

*; //边表头指针

} ;

[]; //是邻接表类型

; //邻接表

int n,e; //顶点数和边数

} ; //是以邻接表方式存储的图类型

2.2 有向图邻接表

在无向图的邻接表中,顶点vi的度恰为第i个链表中的结点数;在有向图中,第i个链表中的结点个数只是顶点vi的出度,有时,为了便于确定顶点的入度,可以建立一个有向图的逆邻接表,如下图所示:

十字链表怎么画_十字链表存储稀疏矩阵_十字链表

十字链表怎么画_十字链表存储稀疏矩阵_十字链表

3 无向图的邻接多重表

图的每一条边用一个边结点表示,这个边结点由5个域组成,如下图所示:

十字链表怎么画_十字链表存储稀疏矩阵_十字链表

mark:标记域,标记该边是否已处理;

, :顶点域,指明该边的两个顶点的顶点域;

link1, link2:链接指针,指向与和关联的下一条边。

还可以设置一个域cost存放该边的权值;

存储顶点信息的顶点表以一维数组方式组织,每个顶点有两个域,如上图所示。

data:存入顶点信息;

:指针域,指向该顶点所关联的第一条边;

在邻接多重链表中,依附于同一个顶点的所有边都链接在同一单链表中。只要从顶点i出发,即可循链找出依附于该顶点的所有边(以及它的所有邻接顶点)。

无向图的邻接多重表的数据结构用C语言定义如下:

…(参照邻接矩阵存储表示)

Enode //边结点定义

int mark; //边的访问标记

cost; //边上的权值

int ,; //边的两个端点的顶点号

Enode *link1, *link2; //边链表中下一条边指针

};

Vnode //顶点的定义

Type data; //顶点的数据

Enode *; //边链表的头指针

};

{

[];

int , ; //图中实际顶点个数和边的条数

} ;

4 有向图的十字链表

合并有向图的邻接表和逆邻接表,就可以得到有向图的十字链表表示。

在有向图的十字链表中,每个边结点也有5个域,如下图所示:

十字链表_十字链表存储稀疏矩阵_十字链表怎么画

-End-

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666

声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!