图的存储结构
被考次数: 1次
被考频率: 低频率
答错率:    62%
知识难度:
考试要求: 掌握     
知识路径:  > 计算机系统基础知识  > 计算机软件基础知识  > 数据结构与算法  > 常用数据结构  > 树和图  > 


本知识点历年真题试卷分布
>> 试题列表    
 

 
       邻接矩阵和邻接表是两种常用的图的存储结构。
       邻接矩阵表示法
       邻接矩阵表示法利用一个矩阵来表示图中顶点之间的关系。对于具有n个顶点的图G=(VE)来说,其邻接矩阵是一个n阶方阵,且满足:
       
       有向图和无向图的邻接矩阵如下图中的矩阵AB所示。
       
       有向图和无向图的邻接矩阵存储示意图
       由邻接矩阵的定义可知,无向图的邻接矩阵是对称的,而有向图的邻接矩阵则不一定具有该性质。
       借助于邻接矩阵,可判定任意两个顶点之间是否有边(或弧)相连,并且容易求得各个顶点的度。对于无向图,顶点νi的度是邻接矩阵中第i行(或列)的值不为0的元素数目(或元素的和);对于有向图,第i行的元素之和为顶点νi的出度OD(νi),第j列的元素之和为顶点νj的入度ID(νj)。
       类似地,网(赋权图)的邻接矩阵可定义为:
       
       下图所示的是网及其邻接矩阵C
       
       一个网及其邻接矩阵表示
       若图用邻接矩阵表示,则图的数据类型可定义为:
       
       或
       
       邻接链表表示法
       邻接链表指的是为图的每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点νi的边(对于有向图是以νi为尾的弧)。邻接链表中的结点有表结点和表头结点两种类型,如下所示:
       
       其中各参数的含义如下:
       .adjvex:指示与顶点νi邻接的顶点的序号。
       .nextarc:指示下一条边或弧的结点。
       .info:存储和边或弧有关的信息,如权值等。
       .data:存储顶点νi的名或其他有关信息。
       .firstarc:指示链表中的第一个结点。
       这些表头结点通常以顺序结构的形式存储,以便随机访问任一顶点及其邻接表。若图用邻接链表来表示,则对应的数据类型可定义如下:
       
       显然,对于有n个顶点、e条边的无向图来说,其邻接链表需要n个头结点和2e个表结点,如下图所示。对于无向图的邻接链表,顶点νi的度恰为第i个邻接链表中表结点的数目。
       
       无向图的邻接表表示
       下图(b)是下图(a)所示有向图的邻接表。从中可以看出,由于第i个邻接链表中表结点的数目只是顶点νi的出度,因此必须逐个扫描每个顶点的邻接表,才能求出一个顶点的入度。为此,可以建立一个有向图的逆邻接链表,如下图(c)所示。
       
       有向图的邻接表及逆邻接表表示
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有