图搜索方法

图的定义:

图 (Graph) 是一种复杂的非线性数据结构,由顶点V(Vertex)集合及顶点间的关系(也称弧或边)E(Edges)集合组成,可以表示为: G=(V, E)。

图的基本术语:
完全图:有n(n-1)/2条边的无向图
完全有向图:有n(n-1)条边的有向图
入度:有向图中以顶点v为终点的弧目称为v的入度
出度:有向图中以顶点v为起始的弧目称为v的出度

根据图是否有向,可以将图分为有向图和无向图

图可以用两种标准方式来表示:

  • 邻接链表
  • 邻接矩阵

邻接链表

邻接链表由 |V|条链表构成,即每个顶点 Vi∈V有一条链表,链表中存储该顶点的相邻顶点

图C为无向图 G=(V,E) |V|=5 |E|=7 的邻接链表表示,共有5条链表,且所有邻接链表的长度之和等于2|E|, 即14。

图D为有向图 G=(V,E) |V|=5 |E|=7 的邻接链表表示,邻接链表的长度之和等于|E|。

不论是有向图还是无向图均需要的存储空间为 Θ(V+E)。

邻接矩阵

对于邻接链表而言,存在一个明显的不足就是无法快速判断边(u,v)是否为图中的边,而邻接矩阵恰恰克服了这一缺陷。
邻接矩阵,对于图G而言,其邻接矩阵由 |V|×|V|的矩阵 A=(aij)表示, 并满足以下关系:

  • aij=1   (i,j)∈E 即两个顶点间有边则为1
  • aij=0   其他 

图E、图F分别给出了无向图与有向图的邻接矩阵表示,其空间需求皆为Θ(V2)。

 图搜索算法的基本流程

  • 创建一个容器,一般称为openlist,用来存储将要访问的节点
  • 将起点加入容器
  • 开始循环:
    • 弹出:从容器中取出一个节点
    • 扩展:获取该节点周围的节点,将这些节点放入容器

转载于:图搜索算法_ciang1989的博客-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值