图的基本概念

图的基本概念:

图是由顶点集合及顶点间的关系组成的一种数据结构: G = ( V   ,   E)

树关注的节点(顶点)中存的值

图关注顶点及边的权值

--------------------------------------------------------------------------------------------------------------------------

完全图:在有n个顶点的无向图中,若有n*(n-1)  /2 条边,即任意两个顶点之间有且仅有一条边,则称此图为无向完全图  ,   在n个顶点的有向图中,若有n*(n-1) 条边,即任意两个顶点有且仅有方向相反的边,则称此图为有向完全图

邻接顶点:在无向图中,(u , v)是E(G)的一条边,则称u和v互为邻接顶点,并称边(u,v)依附于顶点u和v , 在有向图中,若(u , v)是E(G)的一条边,则称顶点u邻接到v,顶点v邻接自顶点u,并称<u,v>与顶点u和顶点v相关联

顶点的度: 顶点V的度是指与它相关联的边的条数,在有向图中,顶点的度等于改顶点的入度和出度之和

无向图:顶点的度等于顶点的出度和入度

路径:在图G = (V ,E)中,若从顶点Vi出发有一组边使其可达到顶点Vj,则称顶点Vi到顶点Vj的顶点序列为从顶点Vi到顶点Vj的路径

简单路径:若路径上各顶点V1 , V2 , V3 ,...  , Vm均不重复,则称这样的路径为简单路径

回路: 若路径上第一个顶点V1 和最后一个顶点Vm重合,则称这样的路径为回路或者环

子图:设图 G = { V , E}和图G1= { V1 , E1},若V1属于V ,且E1属于E,则称G1是G的子图

连通图: 在无向图中,若从顶点V1到顶点V2有路径,则称顶点V1与顶点V2是联通的,如果图中任意一对顶点都是联通的,则称此图为连通图

强连通图:在有向图中,若在每一对顶点Vi和Vj之间都存在一条Vi到Vj的路径,也存在一条Vj到Vi的路径,则称此图是强连通图。

生成树:一个连通图(无向图)的最小连通子图称作该图的生成树,有n个顶点的连通图的生成树有n个顶点和n-1条边

图的存储结构

在图的存储中,只需要保存: 节点和边关系即可,节点的保存比较简单,只需要一段连续空间即可,那边的关系改怎么保存呢??

邻接矩阵:因为节点和节点之间的关系就是连通与否,即为0或者1

邻接矩阵(二维数组):先用一个数组将定点保存,然后采用矩阵来表示节点和节点之间的关系

1.邻接矩阵存储方式非常适合稠密图(边多)

2.邻接矩阵O(1)判断两个顶点的连接关系,并取得权值

3. 相对而言不适合查找一个顶点连接的所有边,-----O(N),得遍历这个顶点和其它顶点的关系

假如我有100个顶点,但是只有3条边,那有没有方法快速找到这3条边呢???

邻接表(和哈希表类似):使用数组表示顶点集合,使用链表表示边的关系

无向图邻接表的存储结构:

邻接表适合存储稀疏图,适合查找一个顶点连接出去的边

不适合确定两个顶点是否相连及权值

邻接矩阵和邻接表其实是属于相辅相成,各有优缺点的互补结构

邻接表的结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值