自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 【数据结构】最小生成树(Prim算法、Kruskal算法)解析+完整代码

设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树(MST)。每次选则一条权值最小的边,使这条边的两头连通(原本已经连通的不选),直到所有结点都连通。,生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。1.最小生成树可能有多个,但边的权值之和总是唯一且最小的;每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止。数组,找到最小值,将其加入树中,并继续遍历与其相连的边。数组,初始为false,判断结点是否加入树。最低的,且还没加入树的顶点。

2024-04-28 22:01:09 337

原创 【数据结构】图 解析+完整代码(概念、存储、基本操作、遍历)广度优先遍历、深度优先遍历、邻接矩阵、邻接表、十字链表、邻接多重表

图的定义有向图无向图简单图、多重图顶点的度、入度、出度顶点-顶点的关系描述连通图、强连通图子图、生成子图连通分量强连通分量生成树生成森林边的权、带权图特殊形态的图重点小结不带权值的邻接矩阵法求度存储带权图的邻接矩阵法邻接矩阵法的性能分析邻接矩阵的性质定义——顺序+链式存储性能分析注:邻接矩阵表示法是唯一的,但图的邻接表表示法不唯一(∵孩子的链接顺序不唯一)邻接表和邻接矩阵的对比只存储有向图空间复杂度:O(∣V∣+∣E∣)O(|V|+|E|)O(∣V∣+∣E∣)如何找到指定顶点的所有出边?——顺着绿色路线如何

2024-04-28 14:40:52 924

原创 【数据结构】并查集 Find和Union的优化 解析+完整代码

(2)Union(S,Root1,Root2):把集合S中的子集合Root2并入子集合Root1,要求Root1和Root2互不相交,否则不支持合并。(3)Find(S,x):查找集合S中单元素x所在的子集合,并返回该子集合的根节点。(1)Initial(S):将集合S中的每个元素都初始化为只有一个单元素的子集合;压缩路径——Find操作,先找到根结点,再将查找路径上所有结点都挂到根结点下。每次Find操作,先找根,再压缩路径,可使树的高度不超过。∵树越深,越难查找,∴要尽量减小树的深度,

2024-04-26 13:58:23 887 1

原创 【数据结构】哈夫曼树 哈夫曼编码 解析+完整代码

(2)构造一个新结点,从F中选取两棵根结点权值最小的树作为新结点的左右子树,并且将新结点的权值置为左右子树上根结点的权值之和;1.每个初始结点最终都会成为叶结点,且权值越小的结点到根结点的路径长度越大;(1)将这n个结点分别作为n棵仅含一个结点的二叉树,构成森林F;从树的根到该结点的路径长度(经过的边数)与该结点上权值的乘积。(3)从F中删除刚才选出的两棵树,同时将新得到的树加入F中。有某种现实含义的数值(如:表示结点的重要性等)树中所有叶结点的带权路径长度之和。3.哈夫曼树中不存在度为1的结点;

2024-04-26 09:59:01 313

原创 【数据结构】树和森林(树和森林的存储结构、树森林二叉树的转换、树和森林的遍历

基于孩子兄弟表示法:如果当前处理的结点在树中有孩子,就把所有孩子结点“用右指针串成糖葫芦”,并在二叉树中把第一个孩子挂在当前结点的左指针下方。如何恢复一个结点的孩子:在二叉树中,如果当前处理的结点有左孩子,就把左孩子和“一整串右指针糖葫芦”拆下来,按顺序挂在当前结点下方。如何恢复一个结点的孩子:在二叉树中,如果当前处理的孩子有左孩子,就把左孩子和“一整串右指针糖葫芦”拆下来,按顺序挂在当前结点下方。2.从树的根结点开始,按树的层序恢复每个结点的孩子。∴适用于找孩子多,找父亲少的场景,如:服务流程树。

2024-04-24 09:49:17 851

原创 【数据结构】线索二叉树(中序、先序、后序线索二叉树)

∴ 可以利用空指针来存储该结点的前驱后继。因此 二叉树线索化实质是要遍历一次二叉树。目的:为了快速查找结点的前驱和后继。将二叉链表中的空指针改为前后继指针。在结点结构中多加两个int型标志位。而前后继需要遍历二叉树后才能得到。,即空指针数量等于结点总数。指针分别指向左右孩子;指针分别指向前后驱。

2024-04-20 16:34:54 392

原创 【数据结构】二叉树(定义、性质、存储、遍历、构造)解析+完整代码

定义1.每个结点至多有两棵子树;2.左右子树不能颠倒(二叉树是有序树)。特殊二叉树1.满二叉树一棵高度为h,且含有2h−12^h-12h−1个结点的二叉树。特点:(1)只有最后一层有叶子结点;(2)不存在度为1的结点;(3)按层序从1开始编号,结点i的左孩子为2i2i2i,右孩子为2i12i+12i1;结点i的父节点为⌊i2⌋⌊i/2⌋。2.完全二叉树。

2024-04-20 13:58:18 1196

原创 【数据结构】串的模式匹配(KMP+朴素模式匹配)

2.对其他的next:在不匹配的位置前,划一条分界线,模式串一步步往后退,直到分界线前能对上,或模式串完全跨过分界线为止。从模式串本身的结构着手,若已匹配相等的前缀序列中有某个后缀正好是模式串的前缀,则可将模式串向后滑动到与这些相等字符对齐的位置。3.若 i 和 j 所指字符不相同,j 回到模式串第一个字符,i 指向下一个子串起始位置;​ 当模式串中第a个元素匹配失败时,令主串指针i不变,模式串指针j=b。当模式串的第j个字符失配时,从模式串的第next[j]个继续往后匹配。

2024-03-15 12:19:28 1191

原创 【数据结构】串 解析+完整代码(求子串、比大小、定位操作)

定义串,即字符串,是由零个或多个字符组成的有限序列。串是一种特殊的线性表,数据元素间呈线性关系。空串:串长度为0时;子串:串中任意个连续的字符组成的子序列;主串:包含子串的串;字符在主串中的位置:字符在串中的符号;子串在主串中的位置:子串的第一个字符在主串中的位置。静态数组实现(定长顺序存储)//用数组存储字符int length;//串的长度}SString;动态数组实现(堆分配存储)用完需要手动freechar*ch;//按串长分配存储区,ch指向串的基地址。

2024-03-15 11:22:36 442

原创 【数据结构】矩阵的压缩存储

是第i行前1~i-1行的所有元素数量;非常量区域和对称矩阵存储方法一毛一样。如何将数组下标k转换为矩阵下标i,j?如何把矩阵下标转化为一维数组下标?元素在第i行的前的元素数量。上三角区域或者下三角区域为一常量。只存储上或下三角区和主对角线。行优先:优先存放一行的数据。列优先:优先存放一列的数据。只要存储值不为0的元素就好。非零元素远少于矩阵元素个数。​ 会失去随机存储的特性。2.链式存储——十字链表法。若n阶方阵中任意一个元素。在数组最后存储常量的值。

2024-03-07 15:05:42 1021

原创 【数据结构】栈和队列的应用——括号匹配 + 表达式求值 + 表达式转换 +栈的递归应用+队列在计算机系统中的应用

括号匹配问题 — 表达式求值 — 表达式转换 — 栈的递归应用 — 队列在计算机系统中的应用 代码+解析

2024-03-07 11:50:13 916

原创 【数据结构】队列 循环队列 双端队列——顺序队列+链式队列完整代码(创建、入队、出队)

顺序队列+链式队列完整代码(创建、入队、出队)——定义只允许在一端进行插入,另一端删除的线性表。特征:先进先出(First In First Out->FIFO)重要术语:队头、队尾、空队列。

2024-03-06 14:05:00 356

原创 【数据结构】栈 顺序栈 链栈(共享栈 创建 进栈 出栈 读取)完整代码+解析

定义stack,只允许在一端进行插入和删除的线性表。特点:后进先出卡特兰数当n个不同元素进栈时,出栈元素不同排序的个数为。

2024-03-06 08:58:48 484

原创 【数据结构】顺序表和链表的对比,在各种情况下如何选择

顺序表:修改Length=0,静态分配系统自动回收空间,动态分配需要手动free。表长难估计,经常增、删元素 ——链表。顺序表:需要将元素前移/后移,时间复杂度。,开销主要来自查找目标元素。表长可估计,查询操作多 ——顺序表。如何选择用链表or顺序表?链表:依次free结点。顺序表:容易浪费内存。,开销来自移动元素。

2024-03-01 10:10:49 839

原创 【数据结构】双链表解析+完整代码(创建、插入、删除)

定义单链表的缺点:无法逆向操作,插入删除时只能从头开始遍历,很不方便。双链表:每个结点都定义两个指针prior和next,分别指向前驱和后继,可进可退。//前驱指针和后继指针初始化双链表//分配头结点//头结点的前驱指针永远指向NULL//头结点还暂时没有后继判空(带头结点)else。

2024-02-29 14:41:00 294

原创 【数据结构】单链表解析+完整代码(插入、删除、尾插法、头插法、按值和按位查找、前插和后插)带头结点和不带两种实现

单链表定义;头插法、尾插法创建单链表;按位插入、后插、前插;按位删除、删除指定结点;按位查找、按值查找;单链表的销毁。附单链表带头结点和不带头结点的两种完整代码。

2024-02-29 10:45:59 678

原创 【数据结构】线性表 顺序表(动态、静态分配,插入删除查找基本操作)解析+完整代码

顺序表定义用顺序存储方式实现线性表的储存。是用一组地址连续的存储单元依次存储线性表中的数据元素。特点:1.表中元素的逻辑顺序与物理顺序相同。2.可以随机存取——知道顺序表起始位置LOC(A)和每个元素所占内存的大小后,可知道任意一个元素的位置。优点1.可随机访问,O(1)时间内找到指定元素;2.存储密度高,每个结点只存储数据元素。缺点1.元素的插入和删除要移动大量数据元素。2.需要连续存储空间,不够灵活。

2024-02-26 15:51:07 623

原创 【数据结构】时间复杂度(加法乘法规则、渐近时间复杂度、循环时间复杂度总结

在实际求解中,只留表达式中最高阶的部分,丢弃其他部分。2.只需挑一个基本操作分析它的执行次数与n的关系即可。最坏时间复杂度、平均时间复杂度、最好时间复杂度。1.顺序执行的代码只会影响常数项,可忽略。3.如果有多层嵌套循环,只需关注。1.找到一个最深层的基本操作;

2024-02-25 17:29:38 1000

原创 【Unity】3D跑酷游戏

unity3D跑酷游戏

2023-10-25 10:26:58 1491 2

原创 【数据结构】队列——顺序实现+链式实现(带头结点+不带头结点)入队 出队 初始化 判空 双端队列 完整代码

队列——顺序实现+链式实现(带头结点+不带头结点)入队 出队 初始化 判空 双端队列 完整代码

2023-06-30 10:45:25 1537 1

原创 【数据结构】栈——共享栈、链栈(入栈 出栈 判空 创建 读栈顶元素)完整代码

栈——共享栈、链栈(入栈 出栈 判空 创建 读栈顶元素)完整代码

2023-06-29 13:01:24 528

原创 【数据结构】线性表——顺序表 链式表 单链表 双链表 循环链表 静态链表

线性表——顺序表 链式表 单链表 双链表 循环链表 静态链表

2023-06-27 21:51:14 485

原创 【数据结构】双链表(定义 创建 插入 删除 销毁 查找)完整代码

双链表(定义 创建 插入 删除 销毁 查找)完整代码

2023-06-27 16:48:49 132

原创 【数据结构】单链表 创建 插入 删除 查找 完整代码

单链表 定义 建立 头插法和尾插法 插入 删除 按序号查找 按值查找

2023-06-24 15:39:45 672

原创 【Qt】实验 多窗口 模态非模态 信号槽 对话框 文档菜单 鼠标操作 按键操作 绘图 定时器 各部件(pushbutton,LineEdit SpinBox,滑动条,CheckBox,ComBox)

Lab51.窗口与子部件2.模态和非模态对话框3.Qt一般框架4.信号槽机制5.标准对话框Lab61.布局设计2.数据界面互动3.多窗口切换Lab71.PushButton按钮组件2.LineEdit单行输入组件3.简易登录界面4.SpinBox组件5.HorizontalSlider 滑块条组件6.数码表与LCD屏幕7.CheckBox 多选框8.ComBox 下拉框组件9.ProgressBar 进度条与定时器10.DateTime 日期与时间组件11.PlainTextEdit 多行文本框12.Rad

2023-06-21 11:17:14 401

原创 【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

录入修改删除图书,查询图书,借还图书,逾期罚款,图书管理,读者管理,信息查询,管理员和读者注册登录

2023-06-21 11:03:18 2475

原创 【Python】数据库(创建库 访问 连接 创建表 编辑记录 案例:客户管理实现)

创建库 访问 连接 创建表 编辑记录 案例:客户管理实现

2023-06-21 10:41:25 312

原创 【Python】数据科学工具(Numpy Pandas np.array() 创建访问数组 向量与矩阵 Series DataFrame)

Numpy Pandas np.array() 创建访问数组 向量与矩阵 Series DataFrame

2023-06-21 10:28:51 2111

原创 【Python】基础语法(基本运算 数据结构 list 字符串 元组 字典 集合 条件语句 循环语句 except-try lambda 函数 文件 类 模块 包)

基本运算 数据结构 list 字符串 元组 字典 集合 条件语句 循环语句 except-try lambda 函数 文件 类 模块 包

2023-06-21 10:25:09 135

原创 【Python】元组 创建 访问 切片 拼接 解包

元组是一种不可变序列,它与列表类似,但元组的元素不能修改。元组中的元素可以是任意类型的,包括数字、字符串、列表和其他元组等。

2023-06-21 10:17:23 397

原创 【Python】字符串 合并 切片 转换 格式化 拆分组合 find index count strip

【Python】字符串 合并 切片 转换 格式化 拆分组合 find index count strip

2023-06-21 09:52:05 413

原创 【Python】列表list

1)切片、索引 2)append、extend、insert 3)index、count 4)len、sum、max、min 5)sort、reverse 6)加法(合并)和乘法(重复)7)列表解析式

2023-06-07 10:12:54 396 1

原创 【Python】文件 读取 写 os模块 shutil模块 pickle模块

1.文件1.1 读取操作1.2 写操作1.3 os:文件管理1.5 shutil:文件的拷贝删除移动解压缩1.6 pickle:数据永久存储

2023-06-05 16:50:50 646

原创 【Qt】窗口部件 标准对话框

1.QWidget1.1 窗口与子部件2.QDialog2.1 模态和非模态对话框2.2 初始信号和槽并实现多窗口切换1) 定义信号和槽2) 自动定义对话框3) 标准对话框a.颜色对话框b.文件对话框c.字体对话框d.输入对话框e.消息对话框f.进度对话框g.错误消息对话框h.向导对话框*完整代码

2023-05-28 14:59:39 973

原创 【图像处理】opencv基本操作 读取 保存 像素 算法运算

cv.BORDER_CONSTANT - 添加恒定的彩色边框。该值应作为下一个参数给出。# cv.copyMakeBorder(src,边界宽度,边框类型)# cv.BORDER_REFLECT - 边框将是边框元素的镜像。# cv.copyMakeBorder(src,边界宽度,边框类型)# cv.BORDER_REFLECT - 边框将是边框元素的镜像。# img.itemset((x,y,channl),新像素值)# img.itemset((x,y,channl),新像素值)

2023-03-08 20:36:43 353

原创 【算法基础】排序 插入、归并、堆、快速 升序+降序

3)如果 i=0)//最坏情况下,遍历至有序列的第一个元素。

2023-03-04 09:09:03 878

原创 【算法基础】归并排序

2.将mid左边和右边递归继续分,直到分到每一小部分只有一个元素;3.结合每两个小部分排序,直到所有分开的部分重新合起来。2.若升序排列,则取两部分中较小的一个,加入新数组;3.重复1,2步骤,直到有一部分被全部取完。1.取要合并的两部分首元素,比较大小;时间复杂度:O(n\log n)分:将数组分为各小部分。时间复杂度:O(n)1.计算中点mid;

2023-03-02 20:28:36 46

原创 【算法基础】插入排序

3.将该元素插入到有序列中的正确位置。4.依次重复3、4步,直到完成排序。时间复杂度:O(n)~O(n*n)2.取有序列后面的一个元素。1.设第一个元素为有序列。空间复杂度:O(1)

2023-03-02 20:23:11 42

原创 【图像处理】数字图像处理基础(分辨率,像素,显示...)

1.数字图像处理基础1.1 图像表示1.1.1 图像成像模型1.1.2 数字图像的表示a.图像采样b.图像灰度的量化c.算比特数1.2 分辨率1.2.1 空间分辨率1.2.2 灰度分辨率1.3 像素间的关系1.3.1 像素邻域a.4邻域b.4对角邻域c.8邻域1.3.2 像素邻接1.3.3 像素连通1.3.4 像素距离a.欧式距离b.街区距离c.棋盘距离1.4 图像的显示1.4.1 显示分辨率和图像分辨率1.4.2 位图1.4.3 调色板。

2023-03-01 11:47:35 811

原创 HTML基础语法

、头部、标签、主体网页标题网页主体内容

2023-02-28 13:26:16 495

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除