数据结构-图(一)

本文详细介绍了图的定义、基本术语,并重点讨论了图的两种常见存储结构——邻接矩阵和邻接表。邻接矩阵适用于判断两个顶点之间是否存在边,但空间效率较低,适合稠密图。邻接表则在增加删除顶点、统计边数及空间效率方面更具优势,特别适合稀疏图。文章通过代码示例展示了如何使用这两种方法创建无向图,并分析了各自的优缺点。

目录

图的定义

图的基本术语

图的存储结构

邻接矩阵表示法

邻接矩阵表示法创建无向图

邻接矩阵表示法的优缺点

邻接表表示法

邻接表表示法创建无向图

邻接表表示法的优缺点


图的定义

        图(Graph)是由顶点的有穷非空集合V(G)和顶点之间边的集合E(G)组成,通常表示为:G=(V,E)其中,G表示个图,V是图G中顶点的集合,E是图G中边的集合。若V={v1,v2,...,vn},则用∣V∣表示图G中顶点的个数,也称图G的阶,E={(u,v)∣u∈V,v∈V},用∣E∣表示图G中边的条数。E(G)可以为空集。若E(G)为空,则图G只有顶点而没有边。  

        对于图G,若边集E(G)为有向边的集合,则称该图为有向图;若边集E(G)为无向边的集合,则称该图为无向图。
        在有向图中,顶点对<x,y>是有序的,它称为从顶点x到顶点y的一条有向边。 因此,<x,y>与<y,x>是不同的两条边。顶点对用尖括号括起来,对<x,y>而言,x是有向边的始点,y是有向边的终点。<xy>也称作一条弧, 则x为弧头,y为弧尾。
        在无向图中,顶点对(x, y)是无序的,它称为与顶点x和顶点y相关联的一条边。这条边没有特定的方向,(x, y)与(y, x)是同一条边。 为了有别于有向图, 无向图的顶点对用一对圆括号括起来。

 

 

图的基本术语

        用n表示图中顶点数目,用e表示边的数目,下面介绍图结构中的一些基本术语。
        (1)子图:假设有两个图G=(v,E)和G'=(v',E'),如果v'是v的真子集且E'是E的真子集,则称G'为G的子图。下图所示为G1和G2的子图示例。


        (2)无向完全图和有向完全图:对于无向图,若具有n(n-1)/2条边, 则称为无向完全图。对于有向图,若具有n(n- 1)条弧,则称为有向完全图
        (3)稀疏图和稠密图:有很少条边或弧(如logn)的图称为稀疏图,反之称为稠密图。
        (4)权和网:在实际应用中,每条边可以标上具有某种含义的数值,该数值称为该边上的权值。这些权值可以表示从一个顶点到另一个顶点的距离或耗费。这种带权的图通常称为网。
        (5)邻接点:对于无向图G,如果图的边(v,v')属于E,则称顶点v和v'互为邻接点,即v和v'相邻接。边(v,v')依附于顶点v和v',或者说边(v,v')与顶点v和v'相关联
        (6)度、入度和出度:顶点v的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值