浅析数据结构-图的基本概念

线性表和树两类数据结构,线性表中的元素是“一对一”的关系,树中的元素是“一对多”的关系,本章所述的图结构中的元素则是“多对多”的关系。图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的。

一、图的定义与术语

定义:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。

1、图的分类

图是按照无方向和有方向分为无向图和有向图。

clip_image001

左图为无向图是由顶点和边构成,右图为有向图是由顶点和弧(有向边构成)。弧有弧头和弧尾区别。

按照边分为稀疏图和稠密图,这是个模糊的概念,同样是相对的概念。

如果任意两个顶点之间都存在边叫完全图,有向的边叫有向完全图。如果无重复的边或者顶点到自身的边叫简单图。在用数学方式表示时,无向边用()表示,有向边用<>表示。现在我们讲解的图全是简单图。

clip_image002

左图没有重复的边或者到自身的边(简单图),右图则有。

clip_image005

这种边带权值的图叫网

2.图的顶点和边间关系

顶点的度:顶点关联边的数目。有向图图中有,入度:方向指向顶点的边;出度:方向背向顶点的边。在有向图中顶点的度就是两者之和。

路径长度:路径上边或者弧的数目。

clip_image006

左图中,从B到D的路径度为2,在右图中就是3了(粗线的边)。

右图中A的入度是2,出度是1;B的入度为0,出度是2.

连通

在无向图G中,任意两个顶点是相通的就是连通图。

clip_image007

左图不是连通图,AE之间没有连通。

二、图的存储结构

图的结构比价复杂,任意两个顶点之间都可能存在关系,不能用简单的顺序存储结构来表示。如果运用多重链表,即一个数据域多个指针域组成的结点表示图中一个结点,则造成大量存储单元浪费。

1、邻接矩阵

邻接矩阵用两个数组保存数据。一个一维数组存储图中顶点信息,一个二维数组存储图中边或弧的信息。

clip_image009

无向图中二维数组是个对称矩阵。

特点:

  • 1、0表示无边,1表示有边

        2、顶点的度是行内数组之和。

        3、求取顶点邻接点,将行内元素遍历下。

    clip_image010

    有向图的邻接矩阵:有向图中讲究入度和出度,各行之和是出度,各列之和是入度。

    带权的图叫网,用邻接矩阵表示为:

    clip_image012

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值