第二十八天

news/2025/11/11 19:29:02/文章来源:https://www.cnblogs.com/y31415/p/19211377

一、核心知识点梳理

1. 图的定义与本质:由顶点(Vertex)和边(Edge)组成的非线性数据结构,用于描述多对多的关联关系(区别于树的父子层级关系)。
2. 关键概念区分:

  • 有向图(边带方向,如社交软件的关注关系) vs 无向图(边无方向,如朋友关系);
  • 加权图(边含权重,如地图路径距离) vs 无权图;
  • 连通图(任意两顶点可达) vs 非连通图,环(顶点到自身的边)、度(顶点关联的边数)。
    3. 存储方式(重点):
  • 邻接矩阵:二维数组  graph[i][j]  表示顶点i与j的关联(有权值则存权重,无则存0/1),优点是查询快,缺点是空间复杂度O(n²)(n为顶点数);
  • 邻接表:数组+链表/ArrayList,数组存顶点,链表存该顶点的邻接顶点,优点是空间高效,适合稀疏图,缺点是查询需遍历链表。
    4. 核心算法(含代码思路):
  • 遍历算法:
  • 深度优先搜索(DFS):递归/栈实现,“一条路走到底再回溯”,适合路径查找、连通性判断;
    代码框架(邻接表): void dfs(int v, boolean[] visited) { visited[v] = true; for (int neighbor : adj[v]) { if (!visited[neighbor]) dfs(neighbor, visited); } }
  • 广度优先搜索(BFS):队列实现,“逐层遍历”,适合最短路径(无权图)、层级遍历;
    代码框架(邻接表): Queue q = new LinkedList<>(); q.add(start); visited[start] = true; while (!q.isEmpty()) { int v = q.poll(); for (int neighbor : adj[v]) { if (!visited[neighbor]) { visited[neighbor] = true; q.add(neighbor); } } }
  • 最短路径:迪杰斯特拉算法(加权图,无负权边)、弗洛伊德算法(多源最短路径)。

二、实践案例与问题

1. 动手实现:用Java实现无向图的邻接表存储,完成DFS和BFS遍历(顶点为整数,边通过addEdge方法添加)。
2. 遇到的问题:

  • 递归实现DFS时,顶点编号从0还是1开始容易混淆,需统一初始化逻辑;
  • BFS中队列的入队时机需配合visited数组,避免重复访问。
    3. 解决方案:定义顶点编号从0开始,初始化visited数组时长度与顶点数一致;入队前先标记visited为true,防止同一顶点多次入队。

三、总结与明日计划

1. 今日收获:明确图的应用场景(地图导航、社交网络、拓扑排序),掌握两种存储方式的优缺点及适用场景,能独立写出DFS和BFS的核心代码。
2. 待巩固点:加权图的存储的实现、迪杰斯特拉算法的代码落地。

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

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

相关文章

当世人 逐渐将英雄遗忘 我最终展露了疯狂 与烧灼许久的欲望 已无人描绘 我的画像

test37没有大样例。小样例无法复制。没有部分分。题解几句话。证明留作作业。就给个std。三道图论。四题都是问最小代价。交换来的。均分纸牌 猜测上界是 \(n-1\),所以现在希望每个间隔是经过一次,因为间隔左右的和是…

关于IP、TCP、UDP的校验和计算

1. MAC MAC没有校验和的概念,可能设计者认为L2层不容易出错,就没有设计 2. IP IP的校验和仅校验首部(而不是校验整个IP包),这是出于性能考虑:如果每一跳都要校验全部数据,那对网络的压力太大了,所以IP被设计为…

元叙事提示注入:突破AI安全边界的攻击技术

本文深入探讨元叙事提示注入技术,通过三个实际案例展示如何通过直接与AI系统对话来绕过安全机制,包括Google Gemini后端代码执行、SOC分析应用和GCP云助手的漏洞利用。元叙事提示注入 2025年10月20日 在利用AI应用程…

NOIP 2025 游记

2023 noip 拿了 \(100+20+ε=120+ε\) 分。 2024 noip 拿了 \(55+100+4+20=179\) 分。 我今年能翻盘吗?回望初三一整年,我似乎一点进步都没有呢。失去你 我忘了天空曾经是 蓝色 找不到你 我眼睛才在帽子下 躲着 不是…

FZNCTF2025-PWN-WP

FZNCTF-Langx-PWN-WP fmt 格式化字符串漏洞 int __fastcall main(int argc, const char **argv, const char **envp) {int fd; // [rsp+4h] [rbp-24Ch]char buf[48]; // [rsp+10h] [rbp-240h] BYREFchar format[520]; …

102302138 林楚涵 作业2

🌦️ 第二次爬虫作业实录|天气 + 股票 + 大学榜作业①:在中国气象网(http://www.weather.com.cn)给定城市集的7日天气预报,并保存在数据库。 ① 核心代码与运行截图点击查看代码 import sqlite3, urllib.reques…

如何在 Windows 中使用 Kimi CLI(PowerShell 补充版)

字数 334,阅读大约需 2 分钟如何在 Windows 中使用 Kimi CLI(PowerShell 版)说明:本教程适用于 PowerShell 环境。如需在 WSL (Windows Subsystem for Linux) 中安装,请参考其他相关教程。一、安装 uv(包管理器)…

【计算机网络表格图表解析】网络体系结构、资料链路层、网络层、传输层、应用层、网络安全、故障排查

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

PWM妙用:解锁LED亮度调节与呼吸灯的LuatOS开发之旅

在嵌入式开发的精彩世界里,PWM技术有着举足轻重的地位。本次,我们将聚焦于PWM的经典应用——LED亮度控制及呼吸灯效果的实现。通过LuatOS开发环境,详细展示如何运用PWM功能,让开发者能够迅速掌握这一实用技能,开启…

主子式与顺序主子式

主子式 (Principal Minor)是线性代数中一个与矩阵相关的重要概念。 定义 对于一个nnn cross n 𝑛𝑛的方阵 Abold cap A 𝐀 ,它的 kk 𝑘阶主子式是指从矩阵中选取相同的行号和列号构成的一个 kkk cross k �…

python项目跟练 外星人入侵 01 3个位置

3个位置 1、游戏屏幕大小 2、飞船图片大小 3、飞船在游戏屏幕中位置游戏屏幕大小 # 将屏幕大小设置存到一个单独设置类中 self.screen_width = 1000 # 定义屏幕 宽xx像素 self.screen_height = 800 # 定义屏幕 高xx…

ONES 重磅升级|全新内核,深度可配置,适配复杂业务流

ONES 于近期完成创业十年来最大范围内核代际升级。深度灵活的自定义引擎,完善的开放平台体系,AI 友好的数据交互架构。此次内核升级的首批上层功能已正式发布。 此次 ONES Project 全新升级,围绕工作项信息管理与多…

类的继承

类的继承子类: public class teacher extends stu{}父类 public class stu {public String name="111";public void say(){System.out.println("shuohua");} }使用 public class Main {public st…

CUDA安装注意事项

参考网站:https://blog.csdn.net/weixin_52677672/article/details/135853106?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522f12aadfcb1121e89732052c8440ee6c5%2522%252C%2522scm%2522%253A%252220140…

豆包Seed-Coder编程能力小试

豆包Seed-Coder编程能力小试背景 最近字节发布doubao-seed-code-preview-251028模型面向Agentic编程任务深度优化 - 支持256K长上下文,让模型轻松处理长代码文件、多模块依赖等复杂场景,更好支持端到端自主编程…

数据类型 标识符 键盘录入

数据类型 标识符 键盘录入数据类型 标识符 键盘录入 数据类型 基本数据类型 ![基本数据类型](/Users/eefile/Documents/截屏2025-11-11 17.37.18.png) 代码测试 public class num { public static void main(String[]…

102302145 黄加鸿 数据采集与融合技术作业2

作业2目录作业2作业①1)代码与结果2)心得体会3)Gitee链接作业②1)代码与结果2)心得体会3)Gitee链接作业③1)代码与结果F12调试分析Gif2)心得体会3)Gitee链接作业① 1)代码与结果 中国气象网在之前任务中已经…

详细介绍:Spring Boot

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …