- 博客(10)
- 收藏
- 关注
原创 数据结构(五)模拟实现:堆
今天来模拟实现堆的数据结构,我们首先要知道堆有,大堆和小堆,今天我们来实现大堆(大根堆),如果想要实现小堆,我们只需要将向上调整函数和向下调整函数改一下就行了(后文会实现),我们还得知道堆逻辑上是一颗树,但是用数组来模拟的,我们可以先看看堆的示意图。
2025-08-16 19:16:03
169
原创 数据结构(四)模拟实现:队列
虽然队列与栈的逻辑差不多,但实现函数的难度明显大很多,由于是先进先出原则,所以插入是尾插,删除是头删,我们就要随时能够找到队列的队头和队尾,当我们构建结构体时,结构体内容是下一个的指针和当前位置存储的数据,为了随时能找到队头和队尾,我们还要将队头和队尾的指针标记,每次书写函数的时候都要传,太过于麻烦, 所以我们再创建一个结构体,结构体是队头地址和队尾地址,具体内容如图。队列的初始化由于不用包含哨兵位头节点,所以初始化直接将指向队头和队尾的指针置空就行,大小初始化为0。以上全部内容,有错误请指出。
2025-08-14 17:08:09
310
原创 数据结构(二)模拟实现:双向循环链表
我们再来实现一个打印函数,来检查我们的函数写得对不对,因为我们的链表是双向循环链表,最后一个节点的next指针指向的是哨兵位头节点,所以创建一个cur指针指向哨兵位头节点的下一个节点,当cur指向哨兵位头节点时循环的结束条件。答案是不用,虽然我们修改的是指针,但修改的也只是结构体内的next和prev,最终我们修改的是结构体的内容,修改结构体,我们只用传结构体的指针就行了。我们的链表有一个哨兵位的头节点,这个节点是不能删除的,所以我们可以先写一个函数来判断链表中是否只剩哨兵位头节点。
2025-08-11 20:36:59
273
原创 数据结构(一)模拟实现:动态顺序表
这里作者cpp写多了,直接用SeqList当名称了,这里得带上struct关键字才行,为了简便我们再次将结构体类型重定义,直接size--即可,不过得记得先判断顺序表是否为空,便于我们判断我们的函数是否正确,我们定义一个打印顺序表的函数。同样先声明后定义,将结构体成员的置0,指针释放置空即可,过于简单,就不废话了。1.创建一个头文件,和二个源文件,分别用来函数声明,函数实现,代码运行测试。与尾插尾删差不多,只不过是要将每个数据往后挪一位,同样是先声明后定义。可知我们的尾插函数,扩容函数,尾删函数是对的。
2025-07-23 22:23:15
340
原创 c语言模拟实现扫雷(基础版)
首先我们明确大致思路,在了解扫雷的游戏规则前提下,首先我们要创建一个游戏菜单,方便我们进入游戏和退出游戏,然后创建两个二维数组,一个用来保存雷的布置情况,另一个表示我们玩扫雷是所显示的棋盘,然后在判断游戏成功和失败,以上是大致思路,接下来我们详细描述。1,首先创建三个文件,分别是头文件game.h来声明函数,包头文件等,和两个源文件,game.c来定义函数,test.c来写扫雷的主干部分。1,首先创建两个棋盘,一个需要存放布置好雷的信息,另一个存放排查出来的雷的信息,然后初始化他们。
2025-07-21 19:32:20
142
原创 c语言实现小游戏--三子棋
这里使用宏定义数组的大小可以方便以后更改三子棋为n子棋。声明好了后,在test.c里创建二维数组,注意这里不能在game.h里创建全局变量,不然源文件引用头文件时会认为有多个定义,导致错误,头文件只能声明菜单函数的定义创建二维数组这里有个问题,board数组不应该在main函数里面创建,而应该在game函数里面创建或者将数组创建成全局变量,在函数外面创建,否则使用board时会显示uncleared正确方法这里我们也是可以运行检测一下,看这个过程的代码有没有出错,
2025-01-13 18:15:12
596
原创 如何快速下载Git
1.Git下载进度缓慢乃至下载不了博主作为一个c语言小白,刚刚知晓要做gitee时,便匆忙按照教程去gitee网站注册登录,然后按照操作先下载Git,再下载Tortoise git ,结果第一步就碰壁了。首先便是下载Git的网址转不动,博主想着这是外网,所以就开了个加速器,好不容易进去,结果发现下载速度是惊人的3KB/s,于是博主耐心的等待了不知多少小时后,又发现下载显示无法下载,需要权限博主顿感烦躁,于是上网搜查,终于是把他下好了2.首先使用镜像站下载Git 华为 Git
2024-12-24 14:44:55
712
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1