数据结构:图结构的简单说明

215 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天。

图是一种非线性数据结构,很多前端开发人员对他可能并不了解,今天我们就从几个方面来了解一下什么是图吧。

定义

在数据结构与算法中,图可以说是比较难理解但是又相当重要的存在。小白学起来可谓相当费力,甚至有些摸不着头脑。今天我们就仔细说说图的相关知识,从基础到应用,希望可以帮到想学习的你。

图简介

据很多老程序员说,图是所有算法中最有用的,而且还经常用到,比如路线图啊、分布图啊等等。其中最常见的就是解决最短路径的问题,用到的是广度优先搜索。

这里是欠钱关系图我们以上图来说明图的定义。

组成

  • 节点:节点可与多个节点直接相连。

广度优先搜索

广度优先搜索是一种用于图的查找算法,可帮助回答两类问题。

❑ 第一类问题:从节点A出发,有前往节点B的路径吗?

❑ 第二类问题:从节点A出发,前往节点B的哪条路径最短?

图是网络结构的抽象模型,是一组由边连接的节点。任何二元关系都可以用图来表示。

组成

一个图 G = (V,E)由以下元素组成:

  • V:一组顶点
  • E:一组边,连接V中的顶点

图片.png

相关概念:

  • 相邻顶点:由一条边连接在一起的顶点
  • 度:一个顶点的度是其相邻顶点的数量。如上图A的度为3
  • 路径:顶点的一个连续序列。如A B E I

有向图和无向图

有向图:边有方向

图片.png

图还可以加权,加权图的边被赋予了权值。

图片.png

  • 无向图:边没有方向