- 博客(9)
- 收藏
- 关注
原创 循环队列|数据结构
在实现循环队列的方法中,我们可以考虑使用数组和链表。在循环队列中,我们首先知道的就是循环队列的大小,并且考虑到链表在插入数据和初始化时的扩容问题,相对而言使用数组容易一些,所以这里我们先使用数组进行理解。首先我们需要定义队列的结构体,它要包含数组指针、头节点、尾节点以及循环队列的大小。int* a;int head;//指向头int tail;//指向结尾数据的下一个位置int k;
2024-11-02 19:59:12
1352
1
原创 队列|数据结构
队列实现需要队尾数据的插入和队头数据的删除,所以我们考虑使用链表,双链表毫无疑问是可以使用的,但是我们这里要优先考虑单链表能否实现(成本等原因)。}QNode;并且接下来的队列相关操作的实现中,我们是要常常传递头指针和尾指针的,所以我们可以通过再定义一个结构体来简化以下参数的传递。这样不仅优化了参数的传递,并且不需要考虑在传递时二级指针的传递。int size;//用来计算队列的数据个数,每次调用都++1}Queue;
2024-11-02 15:05:15
919
原创 栈|数据结构
跟动态顺序表相似,首先我们要用到结构体类型struct,并且要有一个存放数据的数组,由于数组的大小需要动态扩充,因此我们需要定义指针来表示。在定义中我们提到,栈的数据的插入和删除只能从栈顶进行,因此我们还要定义栈顶变量。最后由于栈的大小需要根据数据的多少来决定,因此我们还要定义栈的容量。//重定义int类型为STDataTypeint top;}SL;
2024-10-25 20:58:53
358
原创 环形链表专题|数据结构
根据以上分析,如果要分析能否追上,需要结合入圈时N的奇偶性。当fast一次走三步的时候,并且在slow进环时N为偶数,那么就可以追上;另外当N为奇数时,接着就需要判断环的节点数量,当C为奇数时,新一轮的N就是偶数,那么就可以追上,依此循环,直到追上为止。但是,当C为偶数时,那么不论循环多少次,都不会追上相遇。即永远追不上的条件是N为奇数且C为偶数。当fast每次走4、5等等步数时,按照上述步骤分析依旧可以得出结论,这里不为大家一一列举。
2024-10-23 20:47:23
955
原创 C语言中的 |文件操作|
顺序读写:简单,适用于数据流处理,按顺序处理文件内容。随机读写:灵活,适用于需要在文件中间插入、修改或读取特定位置数据的情况。文件操作中,对于流的定义和解释需要我们去理解,至于所介绍到的函数则需要我们在见到或者使用时可以看懂和灵活运用。
2024-09-23 17:00:53
950
原创 C语言|字符串函数(附模拟实现)
以上四种在C语言中属于无限制字符串函数,与之对应的还有长度受限制的字符串函数(strstr除外),即strnlen,strncpy,strncat等等,其参数多了一项无符号整型(size_t num),用来表示操作的字符个数。(1)字符串以 ' \0 ' 作为结束标志,strlen函数返回的是在字符串中 ' \0 ’ 前面出现的字符个数(不包含 '\0 ')。(2)字符串的比较匹配不包含 \0 字符,以 \0 作为结束标志.(1)第一个字符串大于第二个字符串,则返回大于0的数字0。
2024-08-18 16:27:08
1531
原创 C语言|扫雷游戏
排雷游戏运用到了一些基本的C语言知识,包括分支循环结构,函数的声明、调用,宏定义以及一些C语言自带的库函数(rand()、time()等等)。在玩家结束游戏之后,如果还想继续,我们可以进行改进,将main()函数中的switch分支语句进行do-while()循环。本次游戏有些许不足,比如无法将周围雷的个数为0的坐标周围的八个坐标直接显示出来,而且一些小元件也没有,如果各位感兴趣,可以进行扩展,加上排雷所用时间,排雷所用的时间,甚至布局的美化和难度的选择增加上去。
2024-03-31 17:38:06
1888
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人