数据结构---图

本文介绍了图的基本概念,包括无向图和有向图等,并详细解释了图的各种术语,如顶点、边、路径等。此外还探讨了图的不同类型,如完全图、稠密图和稀疏图等。最后讨论了图的两种主要存储方式:邻接矩阵和邻接表。

数据结构八----图
图的定义:非空顶点集合和边的集合
g=(v,e)
1.图的相关术语
·无向图
·有向图<v3,v4,v1>
·顶点,边(无向图中)弧(有向图)弧的没有箭头的一端为弧尾,有箭头的一端为弧头
·无向完全图:任意两个顶点都有边,n个顶点的图有n(n-1)/2条边
·有向完全图:任意两个顶点之间都有方向互为相反的两条弧相连接,n个顶点,n(n-1)条边
·稠密图:一个图接近完全图
·稀疏图:边数很少的图
·顶点的度:依附于某顶点的边数(TD)、td=id+od
·入度:(有向图):以顶点为终点的弧的数目(ID)
·出度:(有向图):以顶点为始点的弧的数目(OD)
·对于有n个顶点,e条边的图 2e=(td的和)/2
·边的权:与边有关的数据信息称为权(权值通常为数字)
·网图:边上带权的图为网图或者网络(有向网络或无向网络)
·路径:两个顶点之间的路径为vp->v1->v2>v4
·上面的路径长度为3
·回路:称vi的路径为回路或者环、
·简单路径:序列中顶点不重复出现的路径
·简单回路:除第一个顶点与最后一个顶点外,其他顶点不重复出现的回路
·子图:顶点和边或者弧都是另外一个图的子集
·连通:(无向图)如果从一个顶点到另一个顶点有路径,则为连通
·连通图:图中任意两点都是连通的,则为连通图
·连通分量:无向图的极大连通子图
(包含和子图顶点有关所有的边,那就是极大连通子图;如果包含了必不可少的边,且少到不可再少还是连通,那就是极小连通子图。)
(有向图)
· 强连通图:任意一对顶点都有从其到其的方向(双向),则为强连通图
· 强连通分量:有向图的极大强连通子量为强连通分量
·生成树:连通图中的一个极小连通子图,包含全部n个顶点,切包含n-1个边
·生成森林:在非连通图中,由每个连通分量都能得到一个极小连通子图,即一颗生成树,这些连通分量的生成树就组成了一个非连通图的生成森林。

图的存储表示

邻接矩阵

1.存储方式

  • 存储普通图:矩阵元素为1和0
  • 存储网图:矩阵元素为权值和∞
    2.存储特点
  • 无向图的邻接矩阵一定为对称矩阵,因此只需要存放上(下)三角即可。
  • 对于无向图,第i行的非零的个数正好是第i个顶点的度
  • 有向图,则是该顶点的出度(或入度)。
  • 用邻接矩阵可以很容易确定两个顶点之间是否有边相连,却要确定由多少边是个很费时间的事情。
    缺点:邻接矩阵的存储方式对于边数远远小于顶点数的图,在空间上是极大的浪费!对于稀疏图,即边数远远小于顶点数,采用邻接表
    邻接表
    参考资料:https://blog.youkuaiyun.com/weixin_37853880/article/details/80320765(参考资料下的http总结也不错)
  • 对于无向图:为邻接表
  • 对于有向图:有邻接表和逆邻接表
    但是邻接表无法从一个图上看出一个有向图的入度和出度。
    十字链表
    画法参考资料:
    https://www.cnblogs.com/zyl905487045/p/7815429.html
    邻接多重表
    主要针对无向图,因为无向图的邻接图每个顶点都有关系

图的遍历

深度优先搜索:
广度优先搜索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值