Java数据结构与Java算法学习Day10---图的了解和无向图(简略笔记记录)

news2024/11/15 11:12:53

目录

1.1图的定义及分类 142

1.2无向图 143

1.2.1图的相关术语 143 

1.2.2无向图的存储结构 144

1.3图的API设计 145

1.4图的搜索 146

1.4.1深度优先搜索 146 

1.4.2深度优先搜索API设计 147

1.5广度优先搜素 149

1.5.1广度优先搜索API设计及代码实现 150

1.5.2广度优先搜索测试实现 151

1.6案例---畅通工程实现(是前面合并集的提升)152

1.7路径查找 153

1.7.1路径查找API设计 153

1.7.2路径查找的代码实现 154、155

1.7.3路径查找测试的代码实现 156 


1.1图的定义及分类 142

1.2无向图 143

1.2.1图的相关术语 143 

子图解释:所有边的子集,并包含这些依附的顶点。

路径解释:从左下角到右上角的路径

 环:

 

1.2.2无向图的存储结构 144

邻接矩阵:

使用树的索引来表示二维数组的索引。 

例如:如上图所示,问结点7和结点8之间是否有边。如果两结点之间在上面的二维数组表中的值为1,那么就表示这两个结点之间有边。因为是无向图,所有横7竖8  和横8竖7是一样的。 

缺点:处理大规模的问题,需要占据很大的点即内存空间。

邻接表:

存储的都是队列对象。  利用多个Q对象来表示一个树。

 顶点的表示:

 边的表示:

1.3图的API设计 145

本部分代码在/graph/Graph

1.4图的搜索 146

1.4.1深度优先搜索 146 

实质就是:先是纵深进行搜索,纵深搜索完毕后在进行广度的搜索。先深后广

1.4.2深度优先搜索API设计 147

本部分的代码在/graph/DepthFirstSearch中

测试代码在/test/DepthFirstSearchTest 148

1.5广度优先搜素 149

 应用:二叉树的层序遍历

1.5.1广度优先搜索API设计及代码实现 150

 本部分实现代码在/graph/BreadthFirstSearch

1.5.2广度优先搜索测试实现 151

 本部分实现代码在/test/BreadthFirstSearchTest

1.6案例---畅通工程实现(是前面合并集的提升)152

1.7路径查找 153

1.7.1路径查找API设计 153

 注:基于深度优先进行搜索路径

1.7.2路径查找的代码实现 154、155

1.7.3路径查找测试的代码实现 156 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT 系统学习 day04 事件(鼠标,键盘), UDP 通信, TCP 通信,多个定时器,重写绘画事件

1. 事件 (有 键盘按下, 鼠标按下, 鼠标双击等) 1.重写键盘按下事件, 函数: void keyPressEvent(QKeyEvent *event) /*** 按键按下事件 ***/ 代码: void keyPressEvent(QKeyEvent *event) /*** 按键按下事件 ***/{q…

【吴恩达机器学习笔记】十五、大规模机器学习

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。 📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记&…

低代码开发平台——体验系统的重要性

什么是优秀的体验? 简而言之,优质的体验意味着可以随时随地根据客户的需求提供服务,这在数字化的世界中,意味着真正的多重体验。Gartner早在2018年就定义了MXDP(多体验开发平台),以应对我们日常…

游戏开发38课 unity 模板测试

ShaderLab 命令:模板 配置与 GPU 上的模板缓冲区相关的设置。 模板缓冲区为帧缓冲区中的每个像素存储一个 8 位整数值。为给定像素执行片元着色器之前,GPU 可以将模板缓冲区中的当前值与给定参考值进行比较。这称为模板测试。如果模板测试通过&#xff…

liunx如何重启mysql

Linux如何重启MySQL Linux中重启MySQL可以使用service mysql restart命令和脚本启动方式/etc/inint.d/mysql restart。 推荐:MySQL教程 其他命令如下: 一、 启动 1、使用 service 启动:service mysql start 2、使用 mysqld 脚本启动&am…

使用redis做分布式锁

思路步骤 获取锁, 使用 SETNX 命令设置一个key.如果没获取到,从新拿锁,返回步骤1 ; 从新拿锁可以设置等待时间;也可以记录拿锁次数为了做“避免死循环”.如果获取到,使用 EXPIRE 给锁加存活时间;接步骤3,执行业务&…

微机----------------中断控制器8259A(可编程的中断控制器)

目录 功能8259A的引脚8259A的工作方式中断响应顺序8259A的中断优先级管理8259A中断屏蔽管理⭐8259A的中断结束管理功能 ①单片825能管理8级中断,并且可级联管理64级 ②可对任一级中断单独屏蔽或允许 ③中断被响应后,可直接提供中断类型号 ④可通过编程选择其工作方式 IRR中断…

C++入门篇

入门C命名空间命名空间定义命名空间的使用C输入,输出缺省参数缺省参数概念缺省参数分类函数重载函数重载概念C支持函数重载的原因引用引用概念引用特性具体应用const修饰的常量进行引用(常引用)传值,传引用的效率引用和指针的区别…

【无标题】3 GENERIC语句 和 INTEGER类型

【VHDL】【作业】3 GENERIC语句 和 INTEGER类型 文章目录【VHDL】【作业】3 GENERIC语句 和 INTEGER类型前言什么是GENERIC语句?32位加法器仿真波形总结每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。前…

SpringBoot:概述

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 ~ 本篇内容包括:Spring Boo…

[选型] 实时数仓之技术选型

数仓技术路线选型 对于已有的hive数据仓,怎样改造成实时数仓的要求呢? 2.关于实时数仓的选型 如果选择hbase,建议选择kudu 如果选择kudu, 还可以选择doris 如果选择doris,建议选择iceberg 以上三种选择,要配合具体…

C++实现身份证号码过滤与排序

1.描述 警察办案里检索到一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序,如果是错误的身份证号,则从排序列表中删除(仅需判断前两位省级地区编码是否在下面的…

知识图谱-KGE-语义匹配-双线性模型-2016:NAM

【paper】 Probabilistic Reasoning via Deep Learning: Neural Association Models【简介】 本文是中科大和科大讯飞联合发表在 IJCAI 2016 上的工作,本文提出了 NAM(Neural Association Model)用于概率推理,并具体化为 DNN&…

十二月7号

一、uboot概念 1.1 uboot和bootloader关系 1.bootloader:是一系列引导加载程序的统称 boot:引导 loader:加载 2.uboot是引导加载程序中的一种 1.2 uboot特点 1.uboot是由德国DNEX小组进行维护的 2.uboot是一个开源分布式系统 3.uboot支持多种硬件架构平台(ARM/X8…

Blazor 部署 pdf.js 不能正确显示中文资源解决办法

原文链接 [https://www.cnblogs.com/densen2014/p/16964858.html] 在Blazor项目嵌入 pdf.js 时不能正确显示中文,浏览器F12显示如下错误 错误 l10n.js /web/locale/locale.properties not found. 我找到了解决方案。它不仅消除了上面提到的错误(即 404 - locale.p…

nextjs13 webpack5 使用wasm报错

问题描述: 在next 13, webpack 5, react 18的项目中使用Rust编写的wasm报错: ./node_modules/image-map-path/image_map_path_bg.wasm Module parse failed: Unexpected character (1:0) The module seem to be a WebAssembly module, but module is n…

freemarker

文章目录创建项目引入依赖创建配置文件创建启动类和测试类语法listMapif运算符处理空值使用??指定缺失变量默认值内建函数集合长度数据类型布尔值时间类型数值类型字符串类型sequence序列类型hash类型常见指令assign自定义变量指令json转成对象实例list通过下标取值map取值通…

「Redis数据结构」集合对象(Set)

「Redis数据结构」集合对象(Set) 文章目录「Redis数据结构」集合对象(Set)一、概述二、结构三、编码转换四、小结一、概述 Set是Redis中的单列集合,其特点为不保证有序性、保证元素唯一、可以求交集、并集、差集。 从…

Python入门自学进阶-Web框架——28、DjangoAdmin项目应用-只读字段与后端表单验证

有时候,记录的某些字段在生成后就不允许再修改了,这时前端只能显示,不能修改。这时,可在AdminClass中进行设置:readonly_fields[字段名,字段名,。。。],前端格式就显示成只显示不能修…

联想电脑怎么录屏?这3个方法,轻松解决

录屏是现在最常见的办公功能之一,最近有朋友问联想电脑怎么录屏。联想电脑是使用Windows系统的。如果想用联想电脑录屏,可以使用Windows系统自带了的录屏软件进行录屏。下面小编将详细的介绍3个方法,解决联想电脑怎么录屏的问题,感…