自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【编程题】7-5 堆中的路径

3. 根据所给下标,从下往上依次遍历输出堆中的元素,直到根结点,即堆中的路径,注意题目中的下标和自定义的堆中的下标。2. 按照题目要求,遍历所给数组,依次将元素加入。,分别是插入元素的个数、以及需要打印的路径条数。,这里不再赘述其原理和实现过程,只给出代码实现(应用)。个要被插入一个初始为空的小顶堆的整数。将一系列给定数字插入一个初始为空的最小堆。个结点到根结点的路径上的数据。,操作完之后即获得了一个最小堆;开始的,代码中的堆的下标是从。随后对任意给定的下标。个结点到根结点的路径。对输入中给出的每个下标。

2025-03-10 20:51:55 978

原创 【数据结构 C 语言实现】堆和优先队列

上面只是以最小堆作为例子,其它的情况可以此类推,并且数组下标从0开始,也可以将数组下标从1开始,这样做的唯一好处就是计算父亲和儿子的下标时的表达式更简洁一些,只需要选择一个自己喜欢的即可。关于优先队列的基本操作,这里省略了相对来说不太重要的基本操作(没有封装成函数),有兴趣可以自己封装一下。

2025-03-10 20:49:54 788

原创 【编程题】7-6 列出连通集

针对某个结点,我们除了要知道它是属于哪个连通块以外,还要能判断它是否已经被遍历过,然后从小编号的结点到大编号的结点依次遍历,如果当前结点已经被遍历过,则跳过,否则从这个结点开始进行。两种,在图的遍历中,一般选择后者存储,不过当图的结点比较少时,选择前者代码更简单。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。,很小,更重要的原因是题目要求结点按从小到大的顺序遍历,邻接表不好控制这个)。,此题的代码实现并没有使用单独的队列数据结构,而是怎么方便怎么来,具体见代码。

2025-03-10 20:49:03 1008

原创 【编程题】7-3 树的同构

判断二叉树的同构,其解决方法与判断二叉树是否相同类似,并且天然地可以使用递归的解法解决。关于树与二叉树的问题,如果可以用迭代解决的优先选择迭代,不过有时候迭代的思路并不好想,或者迭代的思路很复杂,那么使用递归解决就好。

2025-03-03 21:50:18 1093

原创 【编程题】7-4 是否同一棵二叉搜索树

常规思路就是,不管你是不是二叉搜索树,只要是二叉树(甚至只要是树),都可以直接使用一个算法来判断两棵树相不相同。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。对每一组需要检查的序列,如果其生成的二叉搜索树跟对应的初始序列生成的一样,输出“上面的思路适用于任意二叉树,自然也适用于二叉搜索树。,分别是每个序列插入元素的个数和需要检查的序列个数。个以空格分隔的正整数,作为初始插入序列。

2025-03-03 21:49:11 898

原创 【编程题】7-1 最大子列和问题

这道题和纯粹的 “最大子数组和” 有细微的不同:这道题要求在数组全为负数的情况下返回000,所以会有特殊情况的处理。纯粹的 “最大子数组和” 问题可以参看这篇文章。

2025-02-23 16:52:59 1154

原创 【编程题】7-2 一元多项式的乘法与加法运算

注意细节的处理,特别是C语言中会涉及到空间的开辟和释放,空间的重复利用,内存泄漏等问题。

2025-02-23 16:52:21 903

原创 【数据结构入门 65 题】目录

6-1 单链表逆转6-2~6-6 线性表基本操作6-7 在一个数组中实现两个堆栈6-8 求二叉树高度6-9 二叉树的遍历6-10 二分查找6-11 先序输出叶结点6-12 二叉搜索树的操作集栈和队列

2025-02-16 22:09:43 220

原创 【函数题】6-10 二分查找

有一个非递减数组arr,长度为n,查找arr中最后一个小于等于X的元素下标,下标从0开始。易知,最后一个小于等于目标值的元素下标 = 第一个大于目标值的元素下标 - 1有一个非递减数组arr,长度为n,查找arr中最后一个小于X的元素下标,下标从0开始。易知,最后一个小于目标值的元素下标 = 第一个大于等于目标值的元素下标 - 1二分算法是一种思想,就像基本原理一样,原理很好懂,但是实现方法千变万化,喜好因人而异,上面所记录的都是一种闭区间的写法,即数组的左边界和右边界都是同时取得到的,另外还有。

2025-02-16 21:58:04 1186

原创 【函数题】6-12 二叉搜索树的操作集

实际上在删除二叉搜索树结点的时候可以有很多种操作的方法,比如可以取第一个前驱结点替代当前结点而不一定是第一个后继结点等,还可以在删除的时候调整二茶搜索树的某些结构。

2025-02-16 21:57:41 502

原创 【函数题】6-11 先序输出叶结点

此题只是在输出的时候注意判断一下是否为叶结点即可。下面只给出常规的递归解法和使用栈的迭代解法的代码实现,具体思路在博客。中详细记录了,此题只是在遍历的基础上加了简单的判断而已,故思路解析不再赘述。语言实现一个专用的栈,栈中存放二叉树结点指针,具体实现见。本题要求按照先序遍历的顺序输出给定二叉树的叶结点。的叶结点,格式为一个空格跟着一个字符。应按照先序遍历的顺序输出给定二叉树。二叉树的前序遍历,可以参考博客。基于回溯思想的前序遍历代码。使用栈的前序遍历代码。

2025-02-09 18:30:51 371

原创 【函数题】6-9 二叉树的遍历

二叉树的4种遍历有多种实现方式,这里简单记录了几种,其中,对于层序遍历,套路几乎是固定的,而对于前中后三种遍历,有递归迭代两类,由于递归总是有个“低效率”的标签,所以人们更倾向于迭代法,迭代法又有使用栈和不使用栈两种方法。实际使用时大多使用栈迭代,这种方法比较折中。

2025-02-09 18:28:11 984

原创 【数据结构 C 语言实现】栈和队列

int top;} Stack;data:指向动态数组的指针,用于存储栈中的元素。top:栈顶指针,表示当前栈中元素的数量,同时也指向下一个入栈的位置。capacity:栈的当前容量,当栈满时会动态扩容。int front;int rear;data:指向动态数组的指针,用于存储队列中的元素。front:队头指针,指向队列的第一个元素。rear:队尾指针,指向队列的最后一个元素的下一个位置。capacity:队列的当前容量,队列的实际可用容量为,因为需要区分队列满和队列空的情况。

2025-02-09 16:59:17 997

原创 【函数题】6-7 在一个数组中实现两个堆栈

如果你碰巧是这样想的,那么通过测评没有问题,还有一种普遍的想法是把top1初始化为0,把top2初始化为,判满条件是。实际上这种思路完全没有问题,并且可行,不过在本题中不可行,会显示内存超限,估计是PrintStack函数的内部实现与top1和top2有关联吧。另外这道题的测试用例要在最后一行end之后再加个换行,不然就是超时。。。

2025-01-25 09:54:00 70

原创 【函数题】6-8 求二叉树高度

方法时间复杂度空间复杂度特点递归法OnO(n)OnOhO(h)Oh代码简洁,适合理解递归思想BFS法OnO(n)OnOwO(w)Ow层次遍历,适合宽度较大的树DFS法OnO(n)OnOhO(h)Oh深度优先遍历,适合高度较大的树根据需求选择合适的方法即可。递归法是最常用的方法,代码简洁且易于理解。思考:既然DFS一般用递归实现,那么这里的DFS应该怎么用递归实现呢?

2025-01-25 09:53:37 197

原创 【函数题】6-1 单链表逆转

本题是一道很经典的入门题,虽然简单,但是有些细节需要弄清楚之后才能理解透彻。比如使用迭代法反转时,指针的变换顺序,谁先指向谁,怎么形成循环等,以及递归法中如何递归,出口是什么,递归的不变逻辑是什么等。解决问题并不是重点,现在网上一搜一大把的题解和代码,重点是思路的形成和构建过程:为什么这样想,代码为什么这样写。本题既可以看作是一道单链表的题,又可以看做是一道训练递归思维的题,相信这篇文章能带给读者一些启发。

2025-01-24 12:35:59 257

原创 【函数题】6-2~6-6 线性表基本操作

直接从第一个结点开始顺序遍历链表即可,同时对结点个数进行统计,如果当前结点个数等于。直接从第一个结点开始顺序遍历链表即可,同时对结点个数进行统计。按照题目描述模拟即可,和【6-5 链式表操作集】极为相似。个元素,则返回该元素值。本题要求实现一个函数,找到并返回链式表的第。指向的结点之前,返回链表的表头。本题要求实现一个函数,求链式表的表长。的元素删除并返回链表的表头。本题要求实现带头结点的链式表操作集。本题要求实现顺序表的操作集。:创建并返回一个空的线性表;本题要求实现链式表的操作集。

2025-01-24 12:34:52 47

原创 【Ubuntu24.04】服务部署(Docker)

本文介绍了Docker的安装以及使用Docker来部署服务。如果有多个服务,只需要先将jar包打成镜像,然后根据镜像创建实例即可。不过,美中不足的一点是JDK17镜像有点大,有471MB,有兴趣的可以自己尝试优化。(笔者拉了一个78MB的的镜像,然后下载jdk17的安装包传到实例里面安装,最后将这个实例打成镜像,有580MB。。。部署服务到这里就结束了,可以看到比起最初的手动安装,Docker简化了很多操作,并且使服务和环境方便维护了,当然还有很多很强大的部署和管理服务的工具,比如和k8s。

2024-11-24 17:23:22 2964

原创 【Ubuntu24.04】服务部署(虚拟机)

本文主要介绍了如何安装VMware软件,如何在VMware中安装并配置虚拟机,以及部分组件的安装脚本以供参考。

2024-11-24 17:22:47 1957

原创 【Ubuntu24.04】VirtualBox安装ubuntu-live-server24.04

这篇博客介绍了如何使用VirtualBox安装黑窗口版的,并给出了“一键配置”服务器基本环境的脚本,安装时可以参考。

2024-11-17 20:18:02 1958

原创 【Ubuntu24.04】使用服务器

这篇博客主要介绍了怎么远程连接另一台计算机以及传输文件等,并记录了一些关于虚拟机的特殊情况(虚拟机软件太多了只用VirtualBox举例),最后用一个图形化ssh连接工具Termius解决了开头提出的两个基本问题。

2024-11-17 19:17:14 1554 1

原创 【Ubuntu24.04】服务部署(基础)

服务的部署很简单,繁琐的是布置好服务要用到的环境,以及维护服务,比如报错日志,服务的更新等。这里使用的是最原始的部署方式,主要是为了呈现部署原理以及操作步骤。

2024-11-09 22:42:13 1311

原创 【Ubuntu24.04】从双系统到虚拟机再到单系统的故事

如果有将Windows换成Ubuntu的想法,先把BitLocker关掉,并且最好把磁盘分区删除;如果没有的话还是保留BitLocker比较好,因为如果不设置BitLocker,那么别人就能轻易地刷机或者窃取你电脑内的数据;重新卸下磁盘并安装是一个值得尝试的方法,不要忽略;当然,如果磁盘真的坏了,那就得更换了;Ubuntu只是没有办法的办法,如果能安装Windows,还是Windows更好,不过我这个笔记本是不能了;DELL电脑的BIOS挺不错的,而且支持AHCI,这是安装Ubuntu的前提;

2024-11-09 16:49:22 1276

原创 VirtualBox下安装Centos7.9虚拟机的踩坑记录

如果没有wget命令则用curl命令虚拟机网络连接模式中,网络地址转换(NAT)模式 + 动态IP才能连接外网,凡是使用yumwgetcurl来访问外网的命令都需要自己部署服务只需要内网就行了,一般使用 桥接模式 + 静态IP,如果需要安装工具的话,还得切到能访问外网的情况下(建议写个脚本一键切换)如果命令不好用了就用可能有些文章说还要修改文件,其实不需要,这个文件是会被系统自动修改的。

2024-08-25 12:21:19 1089

原创 VirtualBox虚拟机下安装Ubuntu24.04操作系统

虚拟机可以给你模拟许多种不同的虚拟电脑,一般用操作系统来区分,比如你可以让它虚拟一个Windows 7的电脑,虚拟一个Ubuntu的电脑,虚拟一个Centos的电脑等等,还可以虚拟Mac OS的电脑,这打破了硬件的限制,有许多好处。,这个软件以前是收费的,现在推出了个人免费版,由于笔者第一次安装该软件的时候还是用的U盘拷的实验室电脑上的,版本不但老旧不说,在共享文件夹的配置部分就让笔者痛不欲生,明明说的可以直接鼠标拖放,结果一拖放就直接蓝屏。网络连接方式常用的有网络地址转换,桥接模式,仅主机。

2024-06-21 01:33:57 5462 2

原创 Windows11+Ubuntu24.04双系统安装及配置

我去年在做一个项目的时候需要用到rosros需要运行在Ubuntu系统上。但我的笔记本电脑配置不是很好,采用虚拟机运行的想法随之被否决,决定采用安装双系统的方法。但是我并不是一开始就安装正确了的。当时在网上搜的时候说的ros2是未来的方向,其运行在上,于是我就去安装了,还写了一篇博客用于记录安装时得到的经验和教训。然而我的项目并不需要使用到ros2,因为它太新了,需要用到的是ros1,但是这个版本最适合的操作系统应该是。虽然网上也说可以编译源码来强行安装在。

2024-06-03 15:37:56 5533 3

原创 Ubuntu24.04开发环境配置

本篇博客主要介绍中的开发环境等配置。

2024-06-03 15:36:02 4789

原创 Ubuntu24.04基本配置

本篇博客主要讲述在中的个性化设置以及一些环境的基本配置。你可以假设你刚刚安装好。

2024-06-03 15:33:42 9364 13

原创 【NC16666】开心的金明

动态规划-01背包。

2024-04-29 18:14:36 252

原创 【NC16650】采药

动态规划-01背包。

2024-04-29 17:42:33 179

原创 【NC16693】装箱问题

动态规划-01背包问题。

2024-04-28 14:13:46 1040

原创 【NC235624】牛可乐和最长公共子序列

动态规划。

2024-04-28 13:02:08 740

原创 【NC235954】滑雪

可以动态规划,也可以记忆化搜索。

2024-04-27 11:50:25 1024

原创 【NC16664】合唱队形

此题可以用动态规划,也可以用贪心和二分。

2024-04-27 10:29:10 621

原创 【NC16810】拦截导弹

贪心、二分。

2024-04-26 12:12:32 606

原创 【NC16619】传球游戏

动态规划。

2024-04-26 11:03:44 804 2

原创 【NC212914】牛牛与后缀表达式

栈。

2024-04-13 10:02:43 289

原创 【NC235814】马踏棋盘

DFS、回溯。

2024-04-13 10:01:32 353

原创 【NC16596】计算系数

组合数,快速幂。

2024-04-12 21:06:09 487

原创 【NC23803】DongDong认亲戚

并查集。

2024-04-12 21:05:25 383

idea-dark-theme.icls

这个是idea中关于Dark主题的Java代码配色方案,个人觉得比较漂亮,只需要导入这个配色文件即可看到效果。

2024-11-30

Linux C/C++ 机房预约系统

Linux C/C++ 机房预约系统,适合初学者(特别是需要完成 C/C++ 课程设计的同学)在此基础上修修改改以及扩展内容。本资源代码结构清晰,注释明了,初学者一看就能明白其中含义,对新手友好,同时也可以查漏补缺,学到一些平时没见过的使用方法。

2024-03-27

空空如也

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

TA关注的人

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