- 博客(31)
- 收藏
- 关注
原创 【数据结构】C++实现AVL树
AVL树是一种自平衡二叉搜索树,通过旋转操作保持左右子树高度差不超过1。文章介绍了AVL树的概念、性质及实现方法,重点分析了平衡因子的作用和更新规则。当平衡因子为±2时需进行旋转调整,包括右单旋、左单旋、左右双旋和右左双旋四种情况。文章详细讲解了右单旋的具体步骤和代码实现,并强调旋转后无需继续更新平衡因子。AVL树通过这种机制确保查找、插入和删除操作的时间复杂度为O(log n)。
2025-06-09 19:02:22
1247
原创 【C++】stack,queue和priority_queue(优先级队列)
本文介绍了栈(stack)、队列(queue)和优先级队列(priority_queue)的基本概念及实现方法。首先回顾了栈和队列的常用接口,包括push、pop、top等操作。然后通过vector和list容器分别模拟实现了栈和队列,展示了基于容器适配器的实现方式。重点讲解了优先级队列的模拟实现,它基于堆结构,默认使用vector作为底层容器,并可通过仿函数控制大堆或小堆。优先级队列的实现包括向上调整(Adjustup)和向下调整(AdjustDown)算法来维护堆性质,以及push、pop等操作的实现逻
2025-05-25 01:00:43
740
原创 【数据结构】二叉搜索树
本文介绍了二叉搜索树的基本概念、性质及其在插入、查找和删除操作中的应用。二叉搜索树是一种特殊的二叉树,其左子树的所有节点值小于等于根节点,右子树的所有节点值大于等于根节点。文章详细分析了二叉搜索树的性能,指出其最优情况下时间复杂度为O(log2 N),最差情况下为O(N)。接着,文章通过代码示例展示了如何实现二叉搜索树的插入、查找和删除操作,并讨论了这些操作的复杂性和实现细节。最后,文章探讨了二叉搜索树在key和key/value场景下的应用,强调了其在搜索场景中的重要性。
2025-05-21 23:35:48
1188
2
原创 【C语言】贪吃蛇小游戏
本文介绍了如何用C语言编写经典的贪吃蛇游戏。文章首先提供了游戏的代码结构,包括test.c、Snake.h和Snake.c三个主要文件。test.c文件负责游戏的测试逻辑,Snake.h定义了游戏所需的数据结构和函数声明,而Snake.c则实现了具体的游戏功能,如蛇的移动、食物的生成、游戏界面的绘制等。文章详细解释了如何初始化蛇、创建食物、处理蛇的移动以及判断游戏结束的条件。通过这段代码,玩家可以重温经典的贪吃蛇游戏,并通过键盘控制蛇的移动,体验游戏的乐趣。
2025-05-19 19:38:52
2624
3
原创 【贪心算法C++】坏了的计算器,合并区间,单调递增的数字,无重叠的区间,用最少数量的箭引爆气球
最近五天的贪心题它来啦。欢迎大家的讨论哦,同时也希望能够帮助大家!
2025-05-18 01:45:00
674
原创 【贪心算法C++】柠檬水找零,将数组减半的最少操作次数,最优除法,分发饼干,可被三整除的最大和
哈喽各位,这章是有关贪心算法的一些题。小编给大家分享一下,我会从题目,题目示例,算法原理讲解,证明论证以及代码实现这几个方面来展示给大家。(该解法全部使用C++哦,题目源于力扣。]这时小编最近五天做的贪心题,希望可以帮助到各位!让我们继续加油。
2025-05-11 23:08:13
825
原创 【C++】多态
哈喽!各位好呀,今天我们继续分享C++的另一个内容,多态。那么多态又有哪些知识点在等着我们呢?又有哪些困难等着我们解决呢?多态的作用又有哪些呢?等等。那就带着这些疑问跟着小编的一起进入今天的学习吧!
2025-05-06 20:51:03
955
原创 【C++】继承----下篇
各位好呀!今天呢我们接着讲继承的相关知识,之前给大家已经分享了继承一部分知识。那今天小编就来给继承收个尾吧。来看看继承的剩下的一部分。1.很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。多继承可以认为是C++的缺陷之一,很多后来的OO语言都没有多继承,如Java。
2025-04-25 22:36:40
1417
原创 【C++】继承----上篇
哈喽小伙伴们,你们在写关于不同类但是这些类中都有着相同的变量。一个二个的定义的话还可以接受,但是如果太多的话那是不是特别的麻烦啊?所以今天呢小编就给大家 分享一个方法就是用继承来解决这个问题。那继承又是什么呢?继承又有哪些优点呢?那就跟着小编一起来看看什么时继承吧。
2025-04-20 16:48:54
959
原创 【C++】list的相关函数接口以及模拟实现
这章呢小编简单地介绍了list中相关的函数接口以及功能,同时也模拟实现了list的相关接口。当然这章迭代器才是重点,这里的迭代器跟之前的不一样,那有什么特殊的地方呢?都在文章里面。欢迎大家一起讨论。当然小编还补充了一个按需实例化的知识点。
2025-04-08 20:12:01
727
原创 【C++】vector的模拟实现和相关接口介绍
这章主要分享的是vector的模拟实现以及相关接口的介绍。我们还对迭代器的失效作了举例示范,迭代器在什么情况下会失效。同时这章是建立在类模板的基础之上的。所以在学习的过程中也帮助我们更好的了解模板。
2025-04-01 21:56:22
658
原创 【C++】模板
本篇文章是关于模板的相关知识的分享,主要是包括函数模板和类模板两个方面。其中就包含了模板的基本运用,概念,匹配原则,原理,格式以及优缺点等方面的一个分享。欢迎大家来一起讨论交流
2025-02-26 12:08:10
950
原创 【C++】类和对象(二)
类的默认成员函数的相关知识的分享,包括了构造函数,析构函数,拷贝构造函数,赋值运算符重载以及取地址运算符重载。希望可以帮到大家。
2024-11-30 22:32:57
1107
原创 结构体的内存对齐
这里要分享的是内存对齐。小编会从为什么要内存对齐,对齐规则,修改默认对齐数,对齐的优点,四个方面来讲解。今天的分享就到这里了。欢迎大家讨论。咋们下期再见吧。
2024-11-17 13:02:46
1093
2
原创 【C++】类和对象(一)
今天呢小编想与大家分享C++关于类和对象的相关知识点。由于类和对象这个板块呢知识点比较多。所以 小编分为了上中下三篇来给大家分享。接下来就跟着小编进入类和对象的章节吧。// 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中。
2024-11-17 13:01:14
822
原创 一维和二维数组
哈喽呀,小伙伴们,水滴石穿非一日之功,冰冻三尺非一日之寒,学习本来就是一个循序渐进的过程。加油呀!少年!于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。那就带着期待一起跟随小编进入今天的数组学习吧!昨天再好,也走不回去,明天再难,也要抬脚继续。请你相信你今天的日积月累,早晚会让你成为别人的望尘莫及。希望小伙伴们能够学有所成,朝着梦想的方向前进吧!加油!每个追梦的少年!
2024-04-19 23:55:51
2195
1
原创 分支与循环
include if(表达式)语句表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果是不是0,则语句执⾏列子:输入 一个整数,判断是不是偶数int a;if(a%2==0)printf ("%d是偶数\n",a);return 0;
2024-04-16 09:46:36
2219
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人