图——图的类型定义及存储结构(邻接矩阵与邻接表法详解)

在上篇文章我们学习了图的定义和基本术语,大家可以通过下面的链接学习:

图的定义及基本术语

这篇文章我们就来系统的学习一下图的类型定义和存储结构。

目录

案例引入:

一,图的类型定义

二,图的存储结构

A. 邻接矩阵(数组)表示法

 a.无向图的邻接矩阵表示法

b.有向图的邻接矩阵表示法

c. 网(即有权图)的邻接矩阵表示法

邻接矩阵表示法来创建无向网

邻接矩阵表示法的优缺点:

 B.邻接表(链式)表示法

无向图的邻接表表示:

有向图的邻接表表示:

如何用邻接表表示法创建无向网:

 邻接表表示法的优缺点

邻接表与邻接矩阵表示法的关系:

 C .十字链表(用于有向图)

D .邻接多重表(用于无向图)


案例引入:

六度空间理论:你和任何一个陌生人之间所间隔的人不会超过6个,也就是说,最多通过6个中间人你就能够认识任何一个陌生人。

把六度空间理论中的人际关系网络抽象成一个无向图G。用图G中的一个顶点表示一个人,两个人认识与否用代表这两个人的顶点之间是否有一条边来表示。从任一顶点出发用广度优先方法对图进行遍历,统计所有路径长度不超过7的顶点。 

一,图的类型定义

对图的基本操作有—— 

CreateGraph(&G,V,VR)

      初始条件:V是图的顶点集,VR是图中弧的集合。

      操作结果:按VVR的定义构造图G

DFSTraverse(G)

      初始条件:图G存在。

      操作结果:对图进行深度优先遍历。

BFSTraverse(G)

      初始条件:图G存在。

      操作结果:对图进行广度优先遍历。

知道了图的抽象类型定义,那么具体该如何在存储空间中实现对图的存储?

二,图的存储结构

我们知道,数据结构的存储结构一共有两种:顺序存储和链式存储,同样对于图而言,图的存储结构有以下方式:

1.顺序存储结构:数组表示法(邻接矩阵)

2.链式存储结构:多重链表(邻接表,邻接多重表,十字链表

我们将重点学习——

邻接矩阵(数组)表示法

邻接表(链式)表示法

A. 邻接矩阵(数组)表示法

 建立一个顶点表(记录各个顶点信息)和一个邻接矩阵(表示各个顶点之间关系)

 设图 A = (V, E) n 个顶点,则图的邻接矩阵是一个二维数组 A.Edge[n][n],定义为:

 a.无向图的邻接矩阵表示法

分析1无向图的邻接矩阵是对称的;

分析2顶点i =第 i 行 (列) 1 的个数

特别:完全图的邻接矩阵中,对角元素为0,其余1

b.有向图的邻接矩阵表示法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值