- 博客(9)
- 收藏
- 关注
原创 【数据结构】链式二叉树
本文介绍了链式二叉树的结构与实现方法。链式二叉树采用链表结构存储,每个节点包含根、左子树和右子树。文章详细讲解了四种遍历方式:前序遍历(根-左-右)、中序遍历(左-根-右)、后序遍历(左-右-根)和层序遍历(借助队列实现)。通过代码示例展示了二叉树的构建过程,包括创建节点、递归建立左右子树等操作,并着重说明了数组遍历时需注意指针解引用的问题。最后提供了二叉树遍历的完整代码实现,并提及了其他相关递归题目。
2025-11-26 20:58:50
868
1
原创 【C++】基础入门内容
本文介绍了C++语言的8个重要特性:命名空间用于解决命名冲突;缺省参数为函数参数提供默认值;函数重载允许同名函数根据参数区分;引用是变量的别名;auto关键字实现类型自动推导;范围for循环简化集合遍历;内联函数通过展开减少调用开销;nullptr取代NULL作为空指针。这些特性提高了代码的复用性、安全性和效率,是C++区别于C语言的核心功能。文章通过代码示例详细说明了每个特性的语法规则和使用场景,特别强调了C++11引入的auto、范围for和nullptr等新特性。
2025-10-23 12:01:51
931
原创 【数据结构】二叉树(上)
如果在圈起来的地方更新child,我们本来就应该结束的向下调整还会再执行一次(因为此时的child没有变,还满足while循环的条件),把不存在的子节点里的随机数据跟我们最后的parent位置的数据交换,如果非要这样写,还要在第二个if条件里面加上child<hp->size这个条件,与第二个条件是与( && )的关系。我们删除数据的思路是把根节点这个最大的数据跟数组最后一个元素交换,然后size--就可以删除数据,接着要把交换到根节点的数据向下调整,因为我们交换上去的数据是小的,破坏了我们大堆的规则。
2025-10-14 11:12:38
819
原创 【数据结构】队列
这里需要特别注意一下,我们要分情况的,如果删到最后一个节点了,不管tail,它是会出现野指针的问题的。而队列的实现,我们需要定义俩个指针,头指针跟尾指针,这时候我们可以再定义一个结构体,这样我们传参会方便很多,不用每次都传递头指针,尾指针。链表的计数只能通过遍历一整遍才能获得,有点麻烦,这时候我们就可以在结构体中多定义一个size,当我们需要知道队列的个数的时候就非常方便了。队列的实现我们同样可以用数组和链表,但如果我们用链表的结构,出队列对应的就是头删,头删对我们链表来说就是小case,效率也高。
2025-09-29 12:27:50
1072
5
原创 【数据结构】栈
这里要注意我们返回栈顶元素的时候ps->top要-1,因为我们ps->top指向的是栈顶元素的下一个位置,并且要判空,如果此时栈已经空了,我们再去ps->top-1就越界了。到这里,我们就把栈主要的功能实现完啦,但是我们可能会出错,所以可以再建一个test.c来检验我们的数据是否正确,小编写了一组数据,供大家参考。首先,我们要定义一个结构体来模拟栈,和我们之前定义的通讯录的动态存储一样,我们这里也要定义动态栈。:栈的插入操作叫做进栈/压栈/入栈,入数据在数据栈顶。需要注意的是,这里的。
2025-09-28 17:38:54
651
原创 【C语言】手把手教你实现扫雷小游戏
本文详细介绍了如何用C语言实现9×9的扫雷游戏。通过三个文件(test.c、game.h、game.c)进行模块化设计,重点讲解了游戏逻辑的实现过程:使用两个11×11的二维数组分别存储雷区和展示区,通过初始化棋盘、随机布雷、排查坐标等核心功能完成游戏。代码展示了菜单界面、棋盘显示、雷区统计等关键功能,并利用宏定义提高代码可扩展性。该实现通过字符处理技巧解决了雷区统计的显示问题,最终构建出一个完整的命令行扫雷游戏。
2025-06-02 18:45:47
1544
7
原创 【穿越后,我的金手指是 C 代码】编程三字棋:开启人机博弈的智慧之门!!!
欢迎各位少侠莅临这篇博客,小编将会带你吃透三子棋的简单实现,请跟随小编一同开启实现三子棋的这篇大门吧,本篇内容通俗易懂,0基础也能看懂,请放心食用~
2025-01-23 23:30:16
2016
8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅