当前位置: 首页 > news >正文

数据结构之图

1.图的定义

(1)图是一种网状数据结构,图是由非空的顶点集合和一个描述顶点之间关系的集合组成.
(2)其形式化的定义如下:Graph = (V,E)
在这里插入图片描述
(3)加权图
①在实际应用中,图不但需要表示元素之间是否存在某种关系,而且图的边往往与具有一定实际意义的数有关,即每条边都有与它相关的实数,称为权
②这些权值可以表示从一个顶点到另一个顶点的距离或消耗等信息。这种边上具有权值的图称为带权图
![在这里插入图片描述](https://img-blog.csdnimg.cn/44c0279a846e446d85c679f42fddad1b.png

2.图的存储

(1)邻接矩阵:二维数组 ,顺序结构
在这里插入图片描述

(2)邻接表:链表,链式存储结构

在这里插入图片描述

3.图的遍历

图的遍历就是从图中某个顶点出发,按某种方法对图中所有顶点访问且仅访问一次。
图的遍历算法是求解图的连通性问题、拓扑排序和求关键路径等算法的基础。
(1)深度优先遍历:类似于树的先根遍历,是树的先根遍历的推广(可以采用递归和借助栈的非递归方式实现)
(2)广度优先遍历:类似于树的层次,它是树的按层遍历的推广(借助队列、非递归方式实现)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.最短路径

在许多应用领域,带权图都被用来描述某个网络,比如通信网络、交通网络等。这种情况下,各边的权重就对应于两点之间通信的成本或交通费用。此时,一类典型的问题就是:在任意指定的两点之间如果存在通路,那么最小的消耗是多少。这类问题实际上就是带权图中两点之间最短路径的问题。
在这里插入图片描述
(1)最短路径1:段数最少的最短路径
生活案例:换乘最少
解决方案:使用广度优先搜索即可
类似于树的层次遍历,需要借助于队列来实现
(2)最短路径2:权值最小的最短路径
生活案例:时间最少,距离最短
解决方案:使用狄克斯特拉算法
注意:-1 表示无穷大
①从V1出发
在这里插入图片描述
在这里插入图片描述
②以V2为顶点
![在这里插入图片描述](https://img-blog.csdnimg.cn/7eef20c4df3e4c56bc600d0c0f2dd80e.png
③以V3为顶点

在这里插入图片描述
④以V4为顶点
在这里插入图片描述
⑤以V6为顶点
在这里插入图片描述
⑥以V7为顶点
在这里插入图片描述

⑦以V5位顶点
在这里插入图片描述
⑧最终

在这里插入图片描述

相关文章:

  • Opencv项目实战:03 扫描二维码条形码
  • 智能优化算法:沙猫群算法—附代码
  • node---express
  • [Linux]进程间通信(进程间通信介绍 | 匿名管道 | 命名管道)
  • Allegro Design Entry HDL(OrCAD Capture HDL)RF-PCB菜单详细介绍
  • 电商数仓项目中各层的表
  • 移动安全规范 — 3 -个人密码(PIN)传输规范
  • Spring之AOP思想
  • TypeScript 小结
  • Netty(10)协议设计与解析(IdleStateHandler:空闲检测器、心跳)
  • PostgreSQL数据库统计信息——analyze大致流程
  • C开发环境与基础
  • Android系统_MSM8953_android10_adb连接adbd加入密码检测
  • 23设计模式之 --------- 什么是设计模式?
  • 在以「基础设施」为定位的发展阶段里,产业变成了一个可以有诸多创新的存在
  • $translatePartialLoader加载失败及解决方式
  • __proto__ 和 prototype的关系
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • angular2 简述
  • echarts的各种常用效果展示
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Fastjson的基本使用方法大全
  • Linux快速复制或删除大量小文件
  • Mac转Windows的拯救指南
  • Python_OOP
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 闭包--闭包之tab栏切换(四)
  • 飞驰在Mesos的涡轮引擎上
  • 模型微调
  • 深度学习入门:10门免费线上课程推荐
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 小程序测试方案初探
  • 用jquery写贪吃蛇
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​2020 年大前端技术趋势解读
  • #NOIP 2014# day.1 T2 联合权值
  • ()、[]、{}、(())、[[]]命令替换
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (四)c52学习之旅-流水LED灯
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)基于IDEA的JAVA基础12
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)ABI是什么
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET开源项目介绍及资源推荐:数据持久层
  • .net网站发布-允许更新此预编译站点
  • .sh
  • @Responsebody与@RequestBody
  • @RestControllerAdvice异常统一处理类失效原因
  • [20181219]script使用小技巧.txt