前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图的认识

图的认识

作者头像
神奇的程序员
发布2022-04-10 09:15:20
3740
发布2022-04-10 09:15:20
举报

前言

什么是图?它能用来干嘛?本文将以图文的形式带你解答上述疑惑,欢迎各位感兴趣的开发者阅读本文。

概念

如下图所示,圆圈叫做顶点(结点),连接顶点的线叫做“边”,也就是说,由顶点和连接每对顶点的边所构成的图形就是图。

作用

图可以用来表现各种关系:

  • 人际关系 图可以变现社会中的各种关系,使用起来非常方便。假设我们要举行一场活动,将参加人员作为顶点,把互相认识的人用边连接,就能用来表现参加人员之间的人际关系了。
  • 将车站作为顶点,把相邻两站用边连接,就能用图来表现地铁的路线。
  • 在计算机网络中,把路由器作为顶点,将相互连接的两个路由器用边连接,这样就能用图来表现网络的连接关系。

分类

图大致分为无向图、加权图、有向图

加权图

上面讲到的都是由顶点和边构成的图,而我们还可以给边加上一个值。

这个值就叫做边的权重或者权,加了权的图被称为“加权图”。没有权的边只能表示两个顶点的连接状态,而有权的边就可以表示顶点之间的“连接程度”。

程度:根据图的内容不同,其表示的意思也不同,比如在计算机网络中,给两台路由器之间的边加上传输数据所需要的时间,这张图就能表示网络之间的通信时间了。

而在路线图中,如果把地铁在两个车站间行驶的时间加在边上,这张图就能表现整个路线的移动时间;如果两个车站间的票价加载边上,就能表现乘车费了。

有向图

当我们想在路线图中表示该路线只能单向行驶时,就可以给边上加上箭头,而这样的图就叫做“有向图”。比如网页里的链接也是有方向性的,用有向图来表示就会很方便。

边上没有箭头的图便是“无向图”。

如图所示,我们可以从顶点A到顶点B,但不能直接从B到A,而B和C之间有两条边分别指向两个方向,因此可以双向移动。

和无向图一样,有向图的边也可以加上权重。

如图所示,从顶点B到顶点C的权重为5,而从C到B的权重为7,如果做的是一个表示移动时间的图,从B到C就是下坡路。就像这样,有向图还可以设置非对称的权重

便利性

假设图中有两个顶点 s 和 t,而我们设计出了一种算法,可以找到“从s到t的权重之和最小”的那条路径。

那么,这种算法就可以应用到这些问题上:寻找计算机网络中通信时间最短的路径,寻找路线图中耗时最短的路径,寻找路线图中最省乘车费的路径等。

就像这样,只要能用图来表示这些关系,我们就可以用解决图问题的算法来解决这些看似不一样的问题。

图的搜索

图的搜索,指得是从图的某一个顶点开始,通过边到边到达不同的顶点,最终找到目标顶点的过程。根据搜索的顺序不同,图的搜索算法有“广度优先搜索”、“深度优先搜索”等。

图的搜索可以解决图的基本问题:最短路径问题的算法,最短路径问题即“从 s 到 t”的路径中,找到一条所经过的边的权重总和最小的路径。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 神奇的程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 概念
  • 作用
  • 分类
    • 加权图
      • 有向图
      • 便利性
      • 图的搜索
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档