5.数据结构-图
5.数据结构-图
- 5.1 图的定义和基本术语
- 5.1.1 图的定义
- 5.1.2 图的基本术语
- 5.2图的存储结构
- 5.2.1邻接矩阵
- 采用邻接矩阵表示法创建无向网
- 邻接表
5.1 图的定义和基本术语
5.1.1 图的定义
图 G由两个集合V和E组成,记为 G = ( V , E ) G=(V,E) G=(V,E),其中V是有顶点的有穷非空集合,E是V中顶点偶对的有穷集合,这些顶点偶对称为边。
对于图G,若边集 E ( G ) E(G) E(G)为有向边的集合,则称该图为有向图;若边集 E ( G ) E(G) E(G)为无向边的集合,则称该图为无向图。
有向图中,顶点对 < x , y > <x, y> <x,y>是有序的,它与 < y , x > <y, x> <y,x>是不同的两条边;在无向图中, ( x , y ) (x,y) (x,y)与 ( y , x ) (y,x) (y,x)是同一条边。为了有别于有向图,无向图的顶点用一对括号括起来。
5.1.2 图的基本术语
用n表示图中的顶点数目,用e表示边的数目。
子图:假设有两个图 G = ( V , E ) 和 G ′ = ( V ′ , E ′ ) , 如 果 G=(V,E)和G'=(V',E'),如果 G=(V,E)和G′=(V′,E′),如果 V ′ ∈ V 且 E ′ ∈ E V' \in V 且 E' \in E V′∈V且E′∈E,则称 G ′ G' G′为 G G G的子图。
无向完全图和有向完全图:对于无向图,若具有 n ( n − 1 ) / 2 n(n-1)/2 n(n−1)/2条边,则称为无向完全图。对于有向图。若具有 n ( n − 1 ) n(n-1) n(n−1)条弧,则称为有向完全图。
稀疏图和稠密图:有多少条边或弧(如 e < n l o g 2 n e<nlog_2n e<nlog2n)的图称为稀疏图,反之称为稠密图。
权和网:在实际应用中,每条边可以标上具有某种意义的数值,该数值称为该边上的权。这些权可以表示从一个顶点到另一个顶点的距离或耗费。这种带权的图通常称为网。
邻接点:对于无向图G,如果图的边 ( v , v ′ ) ∈ E (v, v')\in E (v,v′)∈E,则称顶点v和v‘为邻接点,即v和v’相邻接。边 ( v , v ′ ) (v, v') (v,v′)依附于点v和v‘,或者说边边 ( v , v ′ ) (v, v') (v,v′)与顶点v和v’相关联。
度、入度和出度:顶点v的度是指和v相关联的边的数目,记为 T D ( v ) TD(v) TD(v)。入度是以顶点v为头的弧的数目,记为 I D ( v ) ID(v) ID(v);出度是以顶点v为尾的弧的数目,记为 O D ( v ) OD(v) OD(v)。且 T D ( v ) = I D ( v ) + O D ( v ) TD(v)=ID(v)+OD(v) TD(v)=ID(v)+OD(v)。
回路或环:第一个顶点和最后一个顶点相同的路径称为回路或环
简单路径、简短回路或简单环:序列中顶点不重复出现的路径称为简单路径。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简短回路或简单环。
连通、连通图和连通分量:无向图中,若从点v到点v’有路径,则称v和v’是连通的。若对图中任意两个顶点 v i 、 v j ∈ E v_i、v_j\in E vi、vj∈E, v i 、 v j v_i、v_j vi、vj都是连通的,则G是连通图。连通分量则是指无向图中的极大连通子图。
强连通图和强连通分量:在有向图G中,如果对于每一对 v i 、 v j ∈ V , v i ! = v j v_i、v_j\in V, v_i !=v_j vi、vj∈V,vi!=vj,从 v i v_i vi到 v j v_j vj和 v j v_j vj到 v i v_i vi都存在路径,则称G是强连通图。有向图中的极大强连通子图称作有向图的强连通分量。
连通图的生成树:一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的 n − 1 n-1 n−1条边,这样的连通子图称为连通图的生成树。
一棵有n个顶点的生成树有且仅有 n − 1 n-1 n−1条边。如果一个图有n个顶点和小于 n − 1 n-1 n−1条边,则是非连通图。如果它多于 n − 1 n-1 n−1条边,则一定有环。但是,有 n − 1 n-1 n−1条边的图不一定是生成树。
有向树和生成森林:有一个顶点的入度为0,其余顶点的入度均为1 的有向图称为有向树。一个有向图的生成森林是由若干棵有向树组成,含有图中全部顶点,但只有足以构成若干棵不相交的有向树的弧。
5.2图的存储结构
5.2.1邻接矩阵
设 G ( V , E ) G(V, E) G(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵:
A [ i ] [ j ] = { 1 若 < v i , v j > 或 ( v i , v j ) ∈ E 0 反 之 A[i][j] = \left\{\begin{matrix} 1 \ \ 若<v_i, v_j>或(v_i, v_j) \in E\\ 0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 反之 \end{matrix}\right. A[i][j]={1 若<vi,vj>或(vi,vj)∈E0 反之
若G是网(带权值),则邻接矩阵可以定义为:
A [ i ] [ j ] = { w i , j 若 < v i , v j > 或 ( v i , v j ) ∈ E ∞ 反 之 A[i][j] = \left\{\begin{matrix} w_{i,j} \ \ 若<v_i, v_j>或(v_i, v_j) \in E\\ \infty \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 反之 \end{matrix}\right. A[i][j]={wi,j 若<vi,vj>或(vi,vj)∈E∞ 反之
#define MaxInt 32767
#define MVNum 100 using namespace std;typedef char VerTexType;
typedef int ArcType;
typedef struct{VerTexType vexs[MVNum]; //顶点表ArcType arcs[MVNum][MVNum];int vexnum, arcnum; //图的当前点数和边数
}AMGraphe;
采用邻接矩阵表示法创建无向网
#include <iostream>
#include <vector>
#include <cstring>#define MaxInt 32767
#define MVNum 100 using namespace std;typedef char VerTexType;
typedef int ArcType;
typedef struct{VerTexType vexs[MVNum]; //顶点表ArcType arcs[MVNum][MVNum];int vexnum, arcnum; //图的当前点数和边数
}AMGraphe;int LocateVex(AMGraphe G, VerTexType v) {for (int i = 0; i < G.vexnum; i++) {if (G.vexs[i] == v) { // 找到匹配的顶点return i;}}return -1; // 未找到返回 -1
}int CreatUDN(AMGraphe &G){cin >> G.vexnum >> G.arcnum; //输入顶点数和边数for(int i = 0; i < G.vexnum; i ++) cin >> G.vexs[i];for(int i = 0; i < G.vexnum; i ++){ //初始化 for(int j = 0; j < G.vexnum; j ++){G.arcs[i][j] = MaxInt;}} for(int k = 0; k < G.arcnum; k ++){int v1, v2, w;cin >> v1 >> v2 >> w;int i = LocateVex(G, v1), j = LocateVex(G, v2);//确定v1和v2在G中的位置,即顶点数组的下标 G.arcs[i][j] = w;G.arcs[j][i] = G.arcs[i][j];} return 1;}int main() {return 0;
}
优点:
1.查询高效
判断两点是否相邻的时间复杂度为 O(1),直接访问 G.arcs[i][j] 即可。
2.适用于稠密图
若图的边数接近顶点数的平方,邻接矩阵能高效存储和查询边信息。
3.便于矩阵运算
适合用矩阵运算(如图的幂运算)来分析路径问题,例如 Floyd 算法求最短路径。
4.易于实现
结构简单,代码实现直观,初始化和操作都比较容易。
缺点:
1.空间消耗大
需要 O(V2) 的存储空间,即使边数很少(稀疏图),仍要存储所有可能的边信息,浪费空间。
2.插入和删除边的效率低
插入边效率高(O(1)),但删除边可能涉及到维护整个矩阵,在某些情况下效率不如邻接表。
3.不适合稀疏图
当边数远小于 V2时,邻接矩阵会有大量的无效存储(0 或 MaxInt)。
4.不易遍历所有邻接点
查找某个顶点的所有邻接点需要遍历整行,时间复杂度 O(V),而邻接表可以直接访问邻接链表,效率更高。
邻接表
邻接表 是图的一种链式存储结构。在邻接表中,对图的每个顶点 v i v_i vi建立一个单链表,把与 v i v_i vi相邻接的顶点放在这个链表中。可以把这一节点看出链表的表头,其余结点存放有关边的信息,这样邻接表便由两部分组成:表头结点表和边表。
相关文章:
5.数据结构-图
5.数据结构-图 5.1 图的定义和基本术语5.1.1 图的定义5.1.2 图的基本术语 5.2图的存储结构5.2.1邻接矩阵采用邻接矩阵表示法创建无向网邻接表 5.1 图的定义和基本术语 5.1.1 图的定义 图 G由两个集合V和E组成,记为 G ( V , E ) G(V,E) G(V,E),其中V是…...
uni-app使用web-view传参的坑
问题描述 uni-app开发的一个页面,需要点击时跳转到PC端后台的一个详情页,所以需要传参如下: ticketIdticketCodetoken(用于自动登录,校验身份的) 但是吧,如果你明文传token,容易导…...
Android studio打包uniapp插件
一.参考资料与环境准备 原生工程配置需要使用到Android studio和HbuilderX 当前测试的as版本-20240301,下载地址:HbuilderX版本:4.36 二.插件创建流程 1.导入下载的UniPlugin-Hello-AS工程(下载地址见参考资料) 2.生成jks证书…...
SVT-AV1学习-函数selfguided_restoration_fast_internal
一 selfguided_restoration_fast_internal 函数作用 selfguided_restoration_fast_internal是SVT-AV1 编码器中用于自引导恢复Guided Resration SGR 的一个内部函数,通过自引导滤波技术对输入的去燥他图像数据进行处理,生成一个去燥版本的图像࿰…...
双引擎驱动:解密音视频体验的QoS技术底座与QoE感官革命
QoS 定义:QoS(Quality of Service,服务质量)衡量音视频传输技术层面的性能表现,聚焦网络传输和系统处理能力,通过客观指标量化服务质量。核心指标 码率/带宽:数据传输速率上限,直接…...
element-plus选择菜单栏不变色
代码: <template> ... <el-menu-item index"/task/execute"><el-icon><IconMenu /></el-icon><span>验收任务</span> </el-menu-item> <el-menu-item index"/task/change"><el-icon…...
uniapp加载json动画
一、添加canvas画布 <canvas id"lottie_demo" type"2d" style"display: inline-block;width: 148rpx; height: 148rpx;" /> 二、引入依赖和JSON文件 安装依赖 npm install lottie-miniprogram --save import lottie from lottie-mini…...
快递物流展同期举办2025中国智慧物流核心零部件创新论坛
2025中国智慧物流核心零部件创新论坛 会议主题:“AI ”重构智慧物流核心技术生态 会议介绍 随着人工智能、物联网、5G等技术的快速发展,智慧物流已成为全球物流行业转型升级的核心方向。在AI技术的驱动下,物流行业正从传统的“人、车、货”…...
ASP.NET图书馆借阅系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,图书馆借阅系统利用计算机网络实现信息化管理,使图书信息、图书借阅、归还的管理发展和服务水平有显著提升。 本文拟…...
在 Linux 终端中轻松设置 Chromium 的 User-Agent:模拟手机模式与自定义浏览体验
在 Linux 系统中,通过终端灵活控制 Chromium 的行为可以大幅提升工作效率。本文将详细介绍如何通过命令行参数和环境变量自定义 Chromium 的 User-Agent,并结合手机模式模拟,实现更灵活的浏览体验。 为什么需要自定义 User-Agent?…...
实验一 单管共射极放大电路
这篇文章是即兴写的,也不知道对不对,只有代码哦~~(文章结尾有彩蛋哦~~~) 表1-1实验数据MATLAB代码: clear all; clc % 参数设置 VCC 12; % 电源电压 (V) RB1 45e3; % 偏置电阻 RB1 (Ohms) RB2 15e3; % 偏置电阻 RB2 (Ohms) R…...
10-python面向对象(上)
10-python面向对象【上】 1.面向对象简介2. 类(class)3. 类的定义4. 参数self4.1 属性和方法4.2 self 1.面向对象简介 Python是一门面向对象的编程语言 所谓面向对象的语言,简单理解就是语言中的所有操作都是通过对象来进行的 面向过程: 面向过程指将我们…...
Java 大视界 -- 基于 Java 的大数据分布式缓存技术在电商高并发场景下的性能优化(181)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
Apache Airflow开源程序是一个以编程方式编写、计划和监控工作流程的平台
一、软件介绍 文末提供程序和源码下载 Apache Airflow开源程序是一个以编程方式编写、计划和监控工作流程的平台,当工作流被定义为代码时,它们将变得更加可维护、可版本化、可测试和协作性。使用 Airflow 将工作流创作为任务的有向无环图 (D…...
大数据学习(101)-spark的高可用模式
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...
数字内容体验驱动用户参与增效
数字体验驱动参与增长 在数字化竞争日益激烈的市场环境中,数字内容体验已成为撬动用户深度参与的核心杠杆。通过个性化推荐算法与跨渠道分发策略的协同作用,企业能够精准匹配用户兴趣点,将碎片化信息转化为连贯的价值链条。数据显示…...
一文详解OpenGL环境搭建:Ubuntu20.4使用CLion配置OpenGL开发环境
在计算机图形学的广阔领域中,OpenGL作为行业标准的图形库,为开发者提供了强大的工具集来创建从简单的2D图形到复杂的3D世界。然而,对于初学者而言,配置一个合适的开发环境是迈向成功的第一步。本文将详细介绍如何在Ubuntu 20.04.3 LTS操作系统上搭建基于CLion的OpenGL开发环…...
欧拉函数模板
1.欧拉函数模板 - 蓝桥云课 问题描述 这是一道模板题。 首先给出欧拉函数的定义:即 Φ(n) 表示的是小于等于 n 的数中和 n 互质的数的个数。 比如说 Φ(6)2,当 n 是质数的时候,显然有 Φ(n)n−1。 题目大意: 给定 n 个正整数…...
用PointNet++训练自己的数据集(语义分割模型semseg)
(1)训练部件分割(partseg)模型和检测自己点云并将结果保存txt,请看博主上两篇文章 (2)本文背景是将pipe点云上的缺陷和本体检测出来,即1种语义场景(pipe)&…...
Java反射机制深度解析:方法、实战与底层机制
大家好,我是钢板兽! 反射作为Java的特性,它不仅是Spring三大特性Ioc、DI、AOP的基础,而且MyBatis、Jackson序列化、rpc远程调用接口都用到了反射机制。 本文将带你系统性地掌握 Java 反射的使用,通过 JSON 反序列化的…...
查看wifi密码
netsh wlan show profile nameCMCC-Rkt_Wi-Fi5 keyclear CMCC-Rkt_Wi-Fi5是无线网名称...
RPC 发展史
RPC 发展史 RPC(Remote Procedure Call)即远程过程调用,随着微服务的兴起,每个服务都拥有自己的数据库,负责各自的模块,例如 keystone(认证服务)负责用户信息、权限认证的内容&…...
蓝桥杯基础算法-递归
代码简洁,但涉及到的运算,会随着递归层数的增加成指数级增长 路分析:第20行20列位于45度这条线上 这条线上的数字是1 5 13 25 41...两数之差:4 8 12 16 --->每一个都是在前面的基础上4,可以用递归或者循环 public class dem…...
山东大学离散数学第七章习题解析
参考教材:离散数学教程,徐秋亮 / 栾俊峰 / 卢雷 / 王慧 / 赵合计 编著,山东大学计算机科学与技术学院 注:该解析为个人所写,涵盖了 2022-2023-2 学期赵合计老师所布置的所有课本习题;由于学识、认识及经验…...
关于使用python 安装 flask-openapi3扩展,使用docker 环境的完整复盘
在某个时刻 需要运行python 3 flask-openapi3扩展 当前因为服务器为国产化服务器,操作系统版本为麒麟,python 版本为3.7 因为要安装flask-openapi3 包 又因为flask 版本小于2.0 from flask_openapi3 import OpenAPI,Info,Tag目前安装的是 …...
MybatisPlus的一些基本操作
mybatisplus分页 Testvoid testpage(){IPage<User> page new Page<>(1,3); userDao.selectPage(page,null);System.out.println("当前页码值:"page.getCurrent());System.out.println("每页显示数:"page.getSize());S…...
debian12安装mysql5.7.42(deb)
安装 官方文档 https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/linux-installation-debian.html 上面是8.0的教程,服了我说怎么那么奇怪 5.7官方教程 https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/linux-installation-debian.html …...
基于Python脚本实现Flink on YARN任务批量触发Savepoint的实践指南
基于Python脚本实现Flink on YARN任务批量触发Savepoint的实践指南 一、背景与价值 在流计算生产环境中,Flink on YARN的部署方式凭借其资源管理优势被广泛采用。Savepoint作为Flink任务状态的一致性快照,承载着故障恢复、版本升级、作业暂停等重要场景…...
Winform入门进阶企业级开发示例:http接口数据清洗转换、断线续传、mqtt数据传输实例详解(附代码资源下载)
场景 C#/Winform入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享: C#/Winform入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享_winform 强化学习-CSDN博客 如何将以上相关理论知识学以致用。下面针对Winform…...
PHP开发效率提升利器:通义灵码在VSCode中的应用与技巧
引言 在 PHP 开发领域,提高编码效率和质量是每位开发者追求的目标。通义灵码,作为一款由阿里云技术团队开发的智能编码助手,能够通过其强大的 AI 能力,为 PHP 开发者提供包括代码自动补全、智能注释、代码优化等多方面的支持。本…...
WHAT - React 错误边界处理 - react-error-boundary
目录 安装使用方式常用 Props使用场景 react-error-boundary 是一个由 Brian Vaughn 开发的 React 组件库,用于更方便地处理组件树中的错误(错误边界)。 阅读参考: React Error Boundariesreact-error-boundary 安装 npm inst…...
数据模型评估的四维黄金法则:从技术验证到业务价值证明
引言:为什么你的数据模型总被质疑? 在滴滴出行的一次核心业务会议上,数据团队与业务部门爆发了激烈争论:新上线的订单预测模型是否真的优于旧系统?数据工程师认为查询速度提升40%已是巨大成功,业务方却质疑…...
vscode ctrl+鼠标左键不能跳转
笔者使用的vscode版本是1.85.2(一周前从1.99降下来的,因为版本过高连不上服务器)。 使用python时突然发现代码看起来有些别扭,细看之下发现是import xxx语句中的包的颜色从之前的青色变成了现在的白色。再用ctrl左键点击包名试图…...
换动态IP对电脑有什么影响:全面解析与实用指南
在当今数字化时代,IP地址作为网络世界的"身份证",对我们的网络体验有着重要影响。许多用户出于某些原因,会考虑更换动态IP地址。那么,这种操作究竟会对我们的电脑产生哪些影响?是利大于弊还是弊大于利&#…...
Go语言从零构建SQL数据库(6) - sql解析器(番外)- *号的处理
番外:处理SQL通配符查询 在SQL中,SELECT * FROM table是最基础的查询之一,星号(*)是一个通配符,表示"选择所有列"。虽然通配符查询看起来简单,但在解析器中需要特殊处理。下面详细介…...
大模型推理引擎选型与应用场景分析:SGLang、Ollama、VLLM 和 LLaMA.cpp
在当下的大模型技术生态中,SGLang、Ollama、VLLM 和 LLaMA.cpp 各具特色,适用于不同的应用场景和用户需求。以下是它们的核心特点及适用场景的深度剖析: 1. SGLang:高性能企业级推理引擎 核心优势: 零开销批处理&…...
参考平面跨分割情况下的信号回流
前言:弄清楚信号的回流路径,是学习EMC和高速的第一步! 如果我们不管信号的回流路径,会造成什么后果?1、信号完整性问题,信号的回流路径不连续会导致信号反射、衰减和失真。2、信号衰减和噪声干扰ÿ…...
Vue2下载二进制文件
后端: controller: GetMapping(value "/get-import-template")public void problemTemplate(HttpServletRequest request, HttpServletResponse response) throws Exception {iUserService.problemTemplate(request, response);} service: void probl…...
AnimateCC基础教学:随机抽取花名册,不能重复
一.核心代码: this.btnStartObj.addEventListener("click", switchBtn); this.btnOkObj.addEventListener("click", oKBtn); createjs.Ticker.addEventListener("tick", updateRandom); var _this this; var nameArr ["张三", &quo…...
windows+cmake+vscode+NDK远程调试安卓端C++项目
windowscmakevscodeNDK远程调试安卓端C项目 windowscmakevscodeNDK远程调试安卓端C项目 windowscmakevscodeNDK远程调试安卓端C项目 使用C开发安卓端算法库时,需要使用NDK进行交叉编译。使用NDK编译代码时,需要编写.mk脚本进行代码的编译和链接…...
大语言模型(LLM)全解析:从原理到实战应用
在人工智能飞速发展的今天,大语言模型(LLM)已成为改变我们工作生活的重要技术。无论是ChatGPT的对话能力,还是DeepSeek的文本处理,背后都离不开LLM的强大支持。本文将用通俗易懂的语言,带您全面了解LLM的工作原理、训练方法、优化…...
Qt 入门 4 之标准对话框
Qt 入门 4 之标准对话框 Qt提供了一些常用的对话框类型,它们全部继承自QDialog类,并增加了自己的特色功能,比如获取颜色、显示特定信息等。下面简单讲解这些对话框,可以在帮助索引中查看Standard Dialogs关键字,也可以直接索引相关类的类名。 本文将以一个新的项目为主介绍不…...
PyTorch DataLoader 参数详解
在使用 PyTorch 的 DataLoader 时,有许多参数可以调整,这些参数能够帮助我们平衡数据加载效率、内存使用和训练过程的稳定性。下面介绍几个常用参数,并讲解它们的作用: dataset 含义: 数据集对象,必须实现 …...
PowerBI 计算时间用EDATE
我在原表基础上,根据日期字段,计算去年时间 CONCATENATEX(DISTINCT(SELECTCOLUMNS(VALUES(日期表),"去年", FORMAT(DATEADD([日期], -1, YEAR), "yyyyMM"))), [YearMonth],",") 我发现很奇怪的现象,假如某个日…...
GRBL运动控制算法(四)加减速运算
前言 在数控系统和运动控制领域,GRBL 作为一款高效、轻量化的开源固件,因其卓越的性能和简洁的架构被广泛应用于各类嵌入式运动控制场景。GRBL加减速算法的实现尤为关键——它直接决定了运动控制的精度、效率与设备稳定性。 本文深入解析加减速运算的核…...
CSS 学习提升网站或者项目
有几个不错的开源项目可以帮助你练习和提升CSS技能: CSS-Tricks CSS-Tricks 提供了很多关于CSS的技巧和教程,可以通过实践它们来提高CSS技能。你可以在CSS-Tricks上找到很多有趣的项目和代码示例。 Frontend Mentor Frontend Mentor 是一个非常适合练习…...
PolarDB 读已提交事务隔离级别 select ... for update, where条件未用索引,查不到数据的时候不会锁表
由于没有给字段设置唯一性,所以改为通过查询语句加锁确保唯一性,但是发现select count(*) 为0时,不会加锁,所以在insert方法后面需要加锁二次查询确保唯一性。 在 PolarDB 的读已提交事务隔离级别下,SELECT ... FOR UP…...
Python基础——Matplotlib库
绘图基础 Matplotlib 库太大,画图通常仅仅使用其中的核心模块 matplotlib.pyplot,并给其一个别名 plt,即 import matplotlib.pyplot as plt。为了使图形在展示时能很好的嵌入到 Jupyter 的 Out[ ] 中,需要使用%matplotlib inline…...
群晖Hyper Backup备份的东西怎么还原?
一、背景 前面写了一篇文章关于群晖NAS中最简单的备份方案,Hyper Backup 方案 群晖NAS最简单的备份教程(只备份需要的目录到不同的硬盘),留了个尾,即怎么还原备份的东西,这里完结一下。 二、还原方案 2.…...
记录IBM服务器检测到备份GPT损坏警告排查解决过程
服务器设备:IBM x3550 M4 Server IMM默认IP地址:192.168.70.125 用户名:USERID 密码:PASSW0RD(注意是零0) 操作系统:Windows Hyper-V Server 2016 IMM Web System Status Warning࿱…...