- 博客(16)
- 收藏
- 关注
原创 数据结构———栈与队列(队列)详细解析,看完这个就够啦!
队列的实现其实很简单,难度相较于之前并没有提高,和链表的相关操作息息相关很多人都会想学队列有什么用呢?开头我也讲过类似的事例,排队取号呀什么,在生活中还是有用处的。希望这篇文章对你有帮助,下期见!
2024-11-23 10:25:06
831
原创 数据结构-链表-双链表(详细解析)
带头:指的是链表中有哨兵位节点,该哨兵位节点即头节点,在上一章实现的链表中,口头上提到的头节点实际上指的是第一个有效的节点,这其实不是正确的称呼,但是为了好理解才这样错误的称呼头节点,实际在链表中,头节点指的是哨兵位。我们可以看看双链表的基本结构到底是怎样的,即上面的这张图,看起来是不是有点复杂,这线画的乱七八糟的,头都炸了,不过等我讲完你会觉得双链表要比单链表简单很多、代码也要简单很多。循环链表尾节点的next指针指向的链表的第一个节点,而不循环链表的尾节点的next指针指向的是NULL。
2024-10-20 20:06:06
782
原创 数据结构-链表专题-单链表(详细解析)
在前面我们写过顺序表的相关知识,但我们想想,当顺序表一次一次扩容后大部分情况是不是还是会有空间浪费的情况,那么有没有一种结构可以不用浪费空间,我用多少空间开辟多少空间,答案想必你们也知道了,链表就完美的解决了这个问题。这里为什么要传二级指针,这就是传值和传地址的区别了,函数传值调用仅将实参值拷贝给形参,形参和实参分别占有不同的内存块,所以对形参的修改不改变实参。尾插的时候我们要申请一个新的节点,头插也需要申请节点,所以就将申请节点再包装成函数。画个图,找到该节点前一个节点,然后再相连。
2024-10-07 12:06:21
360
原创 数据结构-顺序表(2)详细解析
上期我们讲了顺序表的尾插、头插、尾删、头删,接下来我们继续讲关于顺序表的其他操作,来彻底把顺序表讲明白。在最后我会把整个顺序表的代码都附上。我们自己在写代码的时候,需要注意for循环中i的结束条件,我建议大家可以自己画个图,再带入条件自然就出来了。test.c: 这个就是测试你写的功能对不对,可以自己测试各个函数的功能!这些大概就是所有顺序表的内容,下面我把整个顺序表的代码放到下面。接下来我会继续更新数据结构的知识,下一个专题就到链表啦!3.10 在顺序表中删除某个位置的数据。
2024-09-26 23:27:35
231
原创 数据结构-顺序表 详细解析!
所以动态顺序表才是一个更好的选择。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。顺序表物理结构不一定连续,但是逻辑结构是连续的。希望这篇文章对你有帮助,接下来我会一直更新数据结构的文章,大家跟我一起快乐的学习数据结构吧!这同样也是大家学习数据结构的基础,所以也是比较重要的内容,我会给大家详细介绍顺序表。上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的。3、源文件test.c 是来测试写的代码,测试不同的使用场景。2、动态顺序表 :可以动态增容的顺序表。
2024-09-22 19:22:23
437
1
原创 #C语言 动态内存管理深度解析
用到malloc时要进行强制类型转换,因为默认的返回值类型是void*,还有最后要用free进行内存释放,动态开辟的内存都要用free释放,搭配出现,有几个动态内存分配函数就有几个free,最后把原来指向被释放空间的指针赋值为空NULL,不然它就变成了一个野指针。有时会我们发现过去申请的空间太小了,有时候我们又会觉得申请的空间过大了,那为了合理的时候内存,我们一定会对内存的大小做灵活的调整。当是情况2 的时候,原有空间之后没有足够多的空间时,扩展的方法是:在堆空间上另找一个合适大小的连续空间来使用。
2024-04-13 16:21:56
887
1
原创 #PTA 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1 3 +5 3 +3 3 。 本题要求编写程序,计算所有N位水仙花数。
该题比最基本的输出100-1000以内的水仙花数要复杂一丢丢,关键点难点就是怎么样把一个数的每一位上的数给分离出来。还有一个要说的就是我们在PTA上写题的时候往往会面临的超时的问题,这时候代码确实是找不出来错误的,我们就要看看代码有没有用到pow,sqrt类似于这样的函数,如果有用到我们就要自定义一个函数去实现和他们一样的功能,这时候往往超时的问题就会解决。至于是什么原因,我现在还不是很清楚。Pow是自定义的实现幂次的函数,希望这段代码对你有用!
2024-01-06 11:34:52
1074
1
原创 #已知函数e x 可以展开为幂级数1+x+x 2 /2!+x 3 /3!+⋯+x k /k!+⋯。现给定一个实数x,要求利用此幂级数部分和求e x 的近似值,求和一直继续到最后一项
该题目很简单,按照公式写程序就好,不过有一个很值得说的地方,可能导致你拿不了满分,就是pow函数的应用,pow(double x,double y)两个数都是double类型,如果有个数不小心写成了int你,那么程序不会报错,但是结果却不对。下面是代码:一共有两种方法,MC函数算的是x的幂次。
2023-12-26 16:05:47
1336
1
原创 #扫雷游戏,简单易懂,精细讲解
函数里注释的都是在测试代码的时候用的,咱们测试正确性都可以试一试,当我们玩游戏的时候,埋下的雷肯定不能让别人看到呀,所以有一个埋雷的数组,一个展示给读者的“雷组”,那我们要怎么样埋雷呢,在mine数组’0‘代表不是雷,’1‘代表是雷(踩到你就要噶啦),所以我们先将两个数组初始化,mine数组为’0‘,show数组是’*‘,这个是头文件和自己define的行数,列数,我写的是9*9的扫雷游戏,其中呢,有10个雷,定义的ROWS和COLS的作用之后会讲到。主函数:巨简单,游戏的完成是分成了多个函数。
2023-12-19 20:00:38
485
1
原创 #C语言指针:写一个函数,将一个3*3的矩阵转置(要求用指针来做)
题目的要求是让我们把一个3*3的矩阵转置,也就是将原来的行变成列,如果我们不用指针的话题目可能还更容易理解,我们先来想一想用指针做的思路,最简单的应该就是定义两个数组a[],b[],将一个数组a[]的列传给另一个数组b[]的行上面,然后再去输出数组b[],这个转置是不是就完成了呢。我们传入函数的是两个数组的首元素地址,假设p是a的首元素的地址,那么当p移动的时候就是在数组中一个一个移动,p+1就是第二个元素的地址,p+2就是第三个元素的地址……下面是完整题目的解:!
2023-12-12 21:07:22
1587
2
原创 #C语言习题讲解:给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
【代码】#C语言习题讲解:给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
2023-12-06 18:50:11
3521
1
原创 #C语言例题讲解:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位
希望我的代码能对你们的理解有帮助,祝你也祝我能实现自己的人生理想。方法一:(也是最容易理解的)
2023-12-05 21:53:49
2710
1
原创 写几个函数:1、输入10个职工的姓名和职工号2、按职工号由小到大顺序排序,姓名顺序也随之调整3、要求输入一个职工号,用折半法找到该职工姓名,从主函数输入要查找的职工号,输出该职工姓名
写几个函数:1、输入10个职工的姓名和职工号2、按职工号由小到大顺序排序,姓名顺序也随之调整3、要求输入一个职工号,用折半法找到该职工姓名,从主函数输入要查找的职工号,输出该职工姓名
2023-11-28 23:22:25
2855
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅