数据结构与算法学习笔记(十三)——图

1、图是一种非线性表结构。组成图的各个点为顶点,连接顶点的为边,边的条数为度
2、图根据图的边是否有方向,可分为有向图和无向图;根据图的边是否有权重,分为带权图和无权图,其中带权图中也有带权有向图和带权无向图。
有向图:
在这里插入图片描述
有向图中若有x条边指向顶点A,则顶点A的入度为x,若顶点A有y条边指向其他顶点,则顶点A的出度为y。

无向图:
在这里插入图片描述
带权无向图:
在这里插入图片描述

图的存储方式

1、邻接矩阵存储
邻接矩阵存储使用二维数组表现。
(1)无向图的邻接矩阵存储:若i和j之间有边,则A[i,j]和A[j,i]=1
(2)有向图的邻接矩阵存储:若有从i指向j的边,则A[i,j]=1,若有j指向i的边,则A[j,i]=1
(3)带权无向图的邻接矩阵存储:A[i,j]为i,j之间的边的权重
在这里插入图片描述
(4)该存储方法的缺点:浪费存储空间,例若顶点多,边少
优点:矩阵存储易计算,易获取对应数据
2、邻接表存储方法
(1) 存储方式类似散列表,每个顶点对应一条链表,与该顶点有边关系的顶点都存储在该顶点的链表中在这里插入图片描述
(2)该存储方式优点:节约存储空间,缺点:使用、计算耗时,可将链表换成跳表、红黑树、散列表,节约计算时间
3、当图的数据量过大时,可将图的信息存储在硬盘中,例如数据库中

应用

图广泛应用于社交软件的好友关系中,如微信、qq、微博的好友,A是B的好友、粉丝,B是C的好友、粉丝。

搜索算法

1、广度优先搜索算法(BFS)
以起始顶点层层推进,先从离起始顶点最近的一层搜索,再是次近的。
在这里插入图片描述
2、深度优先搜索算法(DFS),可应用与走迷宫
(1)从顶点v出发,访问v未被访问过的邻接顶点q
(2)再对q进行DFS,直至v的所有邻接顶点都被访问过
(3)若q无任何邻接顶点,则回溯至v
(4)若最后仍有顶点s从未被访问,从再从s进行DFS
在这里插入图片描述

图源:王争——数据结构与算法之美

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值