- 博客(38)
- 收藏
- 关注
原创 单链表的查找和插入,删除操作
这里你可能好奇,pos指针是怎么来的,难道每次我都要循环遍历吗,其实不然,在我们前面写的查找操作中,就可以返回一个指针,可以将这个指针用到这里。此时问题就变成了头插的问题,而且这种问题是和我们正常插入操作矛盾的,因为他们需要的节点数量是不同的,因此,我们需要进行判断,来解决这类问题。在不需要改变头指针的值的时候,我们就用一个一级指针来代替它的作用,这样的结果是防止头指针位置变了,导致链表错位。然后,对于插入的大部分操作,我们都是找到两个节点,然后改变他们两个加temp指针的值。第二种时间复杂度为O(1)
2025-03-24 15:16:14
589
原创 单链表的创建,头插,尾插,头删,尾删,以及插入,删除(1)
在这里 由于链表的数据域(也就是存储数据的地方 ,存储数据的类型)不唯一,所以我选择用typedef来描述,便于后期的更改数据类型。这是一个节点大概的样子。由于链表大多是动态存储的,于是每当我们需要存储一个数据到链表的时候,都可以动态的申请一份空间来。在c语言中是 malloc c++中是new。这里,我们就成功的生成了一个节点。
2025-03-15 10:44:26
793
原创 基于c语言的时间复杂度
我先来解释一下时间复杂度的定义。很简单,你可以理解为你写的代码解决问题的时间效率。那为什么会有时间复杂度这样的概念呢?因为你会发现 在我们解决问题的时候往往可以给出多种解决方案.这么多的解决方案,我到底用哪一种更好呢?是选择看去来简单的循环嵌套,还是复杂算法的代码呢?其实你也了解,代码复杂,往往代表着这个代码写的不错。接下来我来给你分析一下这是为什么。
2025-02-24 15:49:21
368
原创 c语言的分支与循环
分支的关键字有 if else elseif什么意思呢 分支其实可以理解为你在前进的时候 遇到了 分岔口 然后选择其中一条道路if() {代码}else if (){代码}else{代码}if else if else 只能执行一个而且判断是有先后顺序的先判断 if 的条件如果为真执行 if 中的语句如果为假就看 else if如果else if 为真 就执行 else if不然就执行 else这里还要 switch 但是 我感觉switch 好像不太常用。
2025-01-21 20:15:00
163
原创 个人介绍以及未来的规划
很高兴,有这样的一个机会可以向你介绍一下我自己,本人目前是一位211院校的大一新生。爱好打fps和羽毛球。好了,好像也没啥说的了哈哈哈。
2025-01-13 18:43:47
387
原创 东华oj两只塔姆沃斯牛
每次(每分钟)农民John和两头牛的移动是同时的。如果他们在移动的时候穿过对方,但是没有在同一格相遇,我们不认为他们相遇了。当他们在某分钟末在某格子相遇,那么追捕结束。开始时,John和牛都面向北方(因为John并不知道牛在哪,所以不会面向牛)。两只牛在森林里故意走丢了。农民John开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和John)。两头牛和农民John可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。一个障碍物, 两头牛(它们总在一起), 或者 农民John.
2024-12-09 15:21:03
397
原创 东华大学oj 汉诺塔 第m步问题
在实现任务时,每次只能移动一个盘子,且任何时刻不允许大的盘子放在小的盘子上面,B杆可以作为辅助存放杆。对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)依次输出一行对应的答案,该行中输出第m步移动的情况,如第m步是从A移到B,则输出“A--B”(不包括引号)。行首和行尾没有多余的空格,两组数据之间也没有多余的空行。那就把 n-1个盘子放到b 然后把 最大的放到c 再把n-1个盘子移到c 就行。第一个问题在于 a b c三个杆的意义是会变的 所以 采用上面的递归方式 就行。
2024-11-24 10:20:16
662
原创 递归系列 简单(倒序输出一个正整数)
递归思想:首先输出这个数的个位数,然后将个位丢掉,得到新的数,继续递归(也就是再输出新数字的个位数,一直递归下去,直到之前没数字)。例如给出正整数 n=12345,希望以各位数的逆序形式输出,即输出54321。类别: 递归->简单。
2024-11-19 18:10:50
569
原创 堆排序 (大根堆)
首先 我们来引入大根堆的概念 来让大家方便理解。来介绍 父节点 和左右孩子。啥意思呢 可以这么理解所谓的父节点和左右孩子 有点类似于高中生物的遗传图谱。嘿嘿 遗传图谱中 需要父亲和妈妈才能生出俩孩子但是堆这个概念里 只用 爹就能生俩孩子(bushi就是这样的效果捏。这是堆的效果 那么什么是大根堆呢?就是 最上面的元素最大,也就是(划重点)对于任何一个父节点来说 ,父节点都要比他的左右孩子大,只有这样的堆,才叫做大根堆。
2024-11-14 19:34:30
2251
原创 东华大学oj约瑟夫环
两个数组 一个数组表示这个人有没有被淘汰 另一个数组 存 被淘汰者的顺序。如果数到x个人 就把这个人淘汰掉 当数到最后一个人 还没结束的时候。所以可以把赢的人 看成是被淘汰的人 一起 存在数组里就可以了。当然 因为题目要求 我们呢 把最后获胜的人也要输出一下。嗯.....我个人认为 递归好用 但是要少用。什么时候递归结束呢 就是 当 n个人都淘汰了。输出没啥说的 主要讲解 递归函数的思想。然后count计数 计当前数了多少个人。递归 最重要的是设置退出递归的条件。都没人了 就不用递归了。
2024-11-10 10:31:55
431
原创 东华大学oj 环
现在的要求是,得到的这两个九位数差的绝对值能被396整除,问一共有几种剪环的方法。),顺时针形成的数为:123456789,逆时针形成的数为:987654321,这两个数的差的绝对值为:864197532,这个数能被396整除,因此这是一种符合规则的剪法,更奇妙的是,这也是这种排序方式的唯一剪法。标准输入设备中有多组测试数据,输入的第一行有一个整数n,表示一共有多少组测试数据,接下来有n行,为n个测试数据,每组测试数据有9个数字,表示一种环的排列顺序,每个数字之间用一个空格隔开。类别: 一维数组->较难。
2024-11-09 21:27:29
732
原创 东华大学oj黑色星期五
为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二......星期日的次数.这个测试从1900年1月1日到 1900+n-1年12月31日.n是一个非负数且不大于400.最最重要的来了 我们是找到了每个月的13号 但是我怎么知道这天是星期几呢?这里有一些你要知道的: 1900年1月1日是星期一. 4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.也是有个坑在里面的。其实是取模运算 , 比如 1900年1月1日是 周一 那6号 周6 7号?
2024-11-09 20:01:13
276
原创 东华大学oj分苹果 (差分数组方法)
此时 diff 0 0 0 0 0 0 变成 diff 0 1(第一个数-第0个) 0(第2个-第一个) 0 -1(第4个-第3个) 0。有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果。diff(表示的是 当前位置的apples个数 - 前一个位置的apples 个数)此时 apples 0 0 0 0 0 0 (这里多开了一个数)一行N个数,第i个数表示第i个小朋友手上的水果。也是 0 0 0 0 0 0 (同样多开一个数)小朋友排成一排,老师给他们分苹果。
2024-11-09 18:29:35
586
原创 东华大学oj菱形输出
对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。注:通常,显示屏为标准输出设备。比如这个菱形 第一行 前面 打印 n -1个空格 第2行打印n-2个空格 所以当i(行数)<=n的时候 该行首字母前打印 n - i个空格。那么当i>n的时候呢 第4行 前面打印 1个(i-n) 所以我采用三目运算符来解决变号的问题,当然绝对值也是完全可行的。给定一个正整数N,明明的爸爸让他输出一个以Z开始的菱形,以后依次为Y,X…
2024-11-05 09:15:32
722
原创 东华大学oj航班时间
大家来搜到我这篇博客可能是出于两个目的,一种是真的没有思路,另一种呢是不知道该怎么输入。注:本题 我只用到函数 而且用法简单。
2024-11-03 08:51:07
524
原创 c++ string类型的函数说明
大声说出来,这个词啥意思,如果你不认识哈,英语包考不了60(bushi).okok,上代码我发现注释在里面看起来比较暗哈,不知道大家看着舒不舒服,我是感觉不太舒服,太暗了。这个比较简单,大家也可以上手来试一试。
2024-10-30 15:09:59
861
原创 c++中的字符串 定义及用法
我们应该如何定义一个字符串,字符串的含义又是什么呢?故名思意,字符串(把字符串起来),所以你大致的可以理解为,字符串是有字符构成的一种字符型数组。当然和传统数组有所区别的是,字符串的末尾会多出一个"\0",一般情况下没什么影响。接下来我将展示一段定义字符串的代码,便于大家理解。不要忘记头文件欧。
2024-10-30 14:09:59
1021
原创 c++结构体的定义以及用法
首先我们在定义结构体之前,先来对结构体描述一下吧。如果你有过python的学习经历(我目前只学习过python和c++),那么结构体 可以看作是一个新的类(类型),欧克,点到为止,让我们开始学习吧。结构体的定义如下。首先我们直观的来看结构体,是不是和函数比较像呢。和我们定义一个函数不同的是 结构体 中把 (返回值类型)变成了(struct)。
2024-10-29 15:29:14
420
原创 洛谷1047校门外的树
已知我们需要求出树有多少 那我们可以把一个树 看成数字1。题目呢大家都看过了 我来将一下我处理地铁重复区间的方法。这样我们就可以完美解决区间有重复的现象。而修地铁 是把1变成了0,
2024-10-15 19:01:41
145
原创 东华oj时间转换2
如果大于等于1天并小于2天,则输出 1 day HH:MM:SS,比如 1 day 01:05:12。给定一个t,将t秒转化为DD days HH:MM:SS的形式,表示DD天HH小时MM分钟SS秒。如果大于等于2天,则输出DD days HH:MM:SS,比如 2 days 01:05:12。如果大于等于1小时并小于1天,则只输出HH:MM:SS,比如 01:05:12。如果大于等于1分钟并小于1小时,则只输出MM:SS,比如 01:00。如果大于等于10秒并小于1分钟,则只输出SS,比如 10。
2024-10-07 16:06:41
252
原创 东华大学oj银行存款到期日
银行存款有3个月、6个月定期等。从键盘输入一个日期(即为存款日期)以及定期的时间长度(单位为月,输入的时间长度可为小于等于60的任意正整数),请编程输出该定期存款的到期日期。共输入4个整数,中间以空格分隔,第一个整数表示年,第二个整数表示月,第三个整数表示日,第四个整数表示定期长度(单位为月)。输入2014年3月31日,则到期日是2014年6月30日(6月没有31日,所以30日就到期);输入2015年11月30日,则到期日是2016年2月29日。输入2014年4月30日,则到期日是2014年7月30日;
2024-10-07 14:39:48
363
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1