- 博客(47)
- 收藏
- 关注
原创 【初阶数据结构】链表的柔光之美
int data;// 数据域// 指针域} Node;链表是C语言中最基础也最重要的数据结构之一,掌握链表需要理解:指针的操作原理动态内存管理机制数据结构与算法的关系建议通过以下方式巩固学习:手写实现所有链表操作使用调试工具观察内存变化尝试实现双向链表等变体解决LeetCode链表相关题目(如206反转链表、141环形链表)掌握链表将为学习更复杂的数据结构(树、图等)打下坚实基础。路过的佬们点点关注哦~你们的鼓励是我前进的动力~
2025-02-25 23:30:21
806
原创 【算法】冒泡排序
冒泡排序(Bubble Sort)是最经典的排序算法之一,其名称源于元素移动方式如同水中气泡上浮的过程。这个简单直观的算法诞生于1956年,至今仍是计算机科学入门教育的经典案例。return arr冒泡排序虽不是最高效的排序算法,但其简明性使其成为:理解排序思想的绝佳范例算法优化的典型研究对象其他高级排序算法的基础参照在真实开发中,当数据规模超过1000时建议使用更高效的算法(如快速排序、归并排序)。但对于算法学习者,深入理解冒泡排序将有助于建立基础的算法思维模式。附录:不同语言实现示例。
2025-02-24 22:32:06
414
原创 【C语言】用栈实现队列篇
通过这种双栈结构的设计,我们成功突破了数据结构固有特性的限制,实现了不同数据结构间的特性转换。这种设计思路体现了计算机科学中"用简单组件构建复杂系统"的典型方法论,建议读者可以尝试实现其他数据结构间的相互模拟来加深理解。栈的LIFO特性与队列的FIFO需求存在根本性冲突,单个栈无法直接实现队列。:每个元素最多经历两次入栈和两次出栈操作,总体时间复杂度保持O(1)(LeetCode 225题)延迟转移策略:减少栈间元素转移次数。动态扩容:实现自动扩容的栈结构。:后进先出(LIFO):先进先出(FIFO)
2025-02-14 11:19:38
382
原创 深入解析C++命名空间:从基础到高级应用
/ 刚体物理实现关键特性可包含任意数量、任意类型的声明支持前向声明允许跨多个文件的分散定义(称为命名空间扩展)
2025-02-13 23:56:56
1160
原创 【C++入门讲解】
C++作为一门久经考验的编程语言,自1979年由Bjarne Stroustrup在贝尔实验室创建以来,始终保持着旺盛的生命力。它不仅完美继承了C语言的高效特性,更通过面向对象编程(OOP)的加持,成为系统开发、游戏引擎、高频交易等领域的首选语言。最新的C++20标准引入了模块(Modules)、概念(Concepts)等现代特性,使其在保持性能优势的同时,开发效率也大幅提升。(Windows):智能IntelliSense、强大调试器。(跨平台):智能重构、CMake支持。:程序执行的唯一入口。
2025-02-08 23:58:03
797
原创 【重新认识C语言----结构体篇】
结构体通过structstruct 结构体名 {数据类型 成员1;数据类型 成员2;// ...示例:定义一个学生结构体int id;int age;
2025-02-07 23:50:46
919
原创 【重新认识C语言----文件管理篇】
无论是读取配置文件、保存数据,还是处理日志文件,文件操作都是不可或缺的。通过本文的介绍,相信读者已经对C语言中的文件操作有了深入的理解。文件操作是C语言编程中非常重要的一部分,掌握这些操作可以帮助我们更好地处理文件数据。在文件操作过程中,可能会遇到各种错误,如文件打开失败、读写错误等。在C语言中,文件是存储在外部存储器(如硬盘、U盘等)上的数据集合。:以字符形式存储数据,每个字符占用一个字节,通常用于存储可读的文本信息。:以二进制形式存储数据,通常用于存储非文本数据,如图片、音频、视频等。
2025-02-07 23:25:31
1123
原创 【重生之学习C语言----杨辉三角篇】
杨辉三角的定义与数学原理。递推关系的应用:如何通过上一行计算当前行的值。C语言实现技巧:二维数组、循环、格式化输出。优化思路:如何减少内存占用。动手挑战:尝试修改代码,打印出前10行杨辉三角,并在评论区分享你的结果!路过的佬们点点关注哦~你们的鼓励是我前进的动力~
2025-02-06 23:52:56
700
2
原创 【重生之我在学习C语言指针详解】
C语言的灵魂,它赋予了C语言直接操作内存的能力,使得C语言在系统编程、嵌入式开发。计算机的内存被划分为一个个字节,每个字节都有一个唯一的编号。指针数组是指数组中的每个元素都是一个指针。我们可以声明指向指针的指针。函数指针是指向函数的指针。六、指针使用注意事项。
2025-01-29 23:40:20
972
原创 【C语言----函数详解】
函数返回值的数据类型,例如 int、float、void 等。void 表示函数不返回任何值。函数的名称,遵循变量命名规则。函数接收的参数,每个参数包括数据类型和参数名。参数列表可以为空,表示函数不接收任何参数。函数执行的代码块,用花括号 {} 括起来。// 定义一个计算两个整数之和的函数函数是C语言编程中不可或缺的工具,它可以将程序分解成更小、更易管理的模块,提高代码的模块化程度和可重用性。本文介绍了函数的定义和声明、函数的调用、函数参数传递、函数的返回值、递归函数以及函数指针等内容。
2025-01-28 21:41:16
727
原创 【C语言----数组详解】
数组是一种用于存储相同数据类型元素的顺序集合。它将多个相同类型的变量按顺序排列在一起,并使用一个统一的名称(数组名)来标识,通过下标(索引)来访问各个元素。你可以把数组想象成一个储物柜,每个储物柜都有一个编号(下标),里面存放着不同的物品(元素)。你可以通过编号快速找到并访问特定的物品。数组是C语言中非常重要的数据结构,掌握数组的使用对于编写高效、简洁的代码至关重要。本文介绍了数组的基本概念、声明和初始化方法、元素的访问和遍历、常见应用场景以及多维数组等内容。
2025-01-28 21:33:19
1011
原创 【C语言常见概念详解】
C语言是一门功能强大且灵活的编程语言,掌握其基本概念是深入学习C语言的基础。本文介绍了C语言中的一些常见概念,包括基本数据类型、变量与常量、运算符与表达式、控制结构、函数、指针、数组与字符串、结构体与联合体以及文件操作。希望这些内容能帮助大家更好地理解和运用C语言,为未来的编程之路打下坚实的基础。
2025-01-27 23:32:55
1339
原创 【优选算法】10----无重复字符的最长子串
这道无重复字符的最长子串题目,通过暴力解法和滑动窗口两种思路的对比,让我们深刻体会到了算法优化的魅力。暴力解法虽然简单易懂,但在效率上远远不如滑动窗口。这就像生活中,有时候简单直接的方法虽然能解决问题,但稍微动点脑筋,找到更巧妙的方法,就能事半功倍。希望大家都能掌握这个滑动窗口的技巧,以后再遇到类似的问题,就能轻松应对,在算法的世界里畅行阻!题目直达---->3. 无重复字符的最长子串 - 力扣(LeetCode)
2025-01-24 22:26:49
1044
2
原创 【优选算法】8----四数之和
讲解算法原理:同三数之和一样,暴力算法肯定不得行的~所以就直接在暴力算法的基础上,我们借助在三数之和的算法原理来多加一层循环,便解决这道四数之和啦~与三数之和有着异曲同工之妙~
2025-01-23 23:59:08
599
2
原创 【优选算法】5----有效三角形个数
又是一篇算法题,今天早上刚做的热乎的~其实我是想写博客但不知道写些什么(就水一下啦)这道题的题目算是最近几道算法题里面题目最短的,但是单单看题目的话,我就只知道有一个数组,需要我们去返回其中符合三角形特性的三条边,所以我们可以从示例入手,了解这道算法需要我们去实现的地方~先说暴力解法吧,我们就需要用到三个for循环来进行遍历,时间复杂度为O(n^3),在力扣上面肯定是编译不过的,所以在这个基础上,我们需要优化算法~新思路:我们可以将所给数组先进行排序,排序成单调递增的数组,两个指针left和right,le
2025-01-22 23:49:51
683
4
原创 【优选算法篇】2----复写零
这道算法题相对于移动零,就上了一点点强度咯,不过还是很容易理解的啦~题目解析:这道题如果没理解好题目,是很难的,但理解题目就容易啦讲解算法原理:意思就是:一个数组长度是固定的,里面的元素,只要是0,就需要在原有的基础上,在0的后面多加一个0,以此类推,不为0的数就得往后移动,最后保持原有的数组长度不变,像上图第一个示例的5和0就是因为前面0要写两个,所以要被去掉~
2025-01-20 23:30:49
650
3
原创 【C++】简易了解内部类,匿名对象和对象拷贝时的编译器优化
C++内部类是指在一个类的内部定义另一个类。内部类可以访问外部类的私有成员,并且可以用外部类的对象创建内部类的对象。内部类的声明和定义通常在外部类的声明中,但也可以在外部类的定义中进行。代码示例如下:相应的oj题:求1+2+3+...+n_牛客题霸_牛客网感兴趣的铁子可以试一试哟~匿名对象是指在创建对象时不给对象指定一个具体的名字,直接将对象作为表达式的值使用。匿名对象通常在需要临时创建一个对象并使用一次的情况下使用,不需要为其分配内存空间,不需要使用delete来释放内存,由编译器自动回收。实现代码
2024-12-24 14:57:26
869
1
原创 【C++】剖析static关键字&&友元
static,在英语单词中译为静态,静态的意思。当然,在这个从C至C++的关键词都发挥着非凡的作用的关键词的用法上,相信还是有很多小伙伴摸不着头脑,我也不例外,总是用得我抓耳挠腮,一点头绪都无。在百度中查询,查到的也是优快云上的种种详解,看得我也是天花乱坠,眼花缭乱。对于这种一知半解的重要知识点,我们也应该去尝试看懂,明白。所以,我在这里为大家讲叙我对其的一些理解,希望能帮到大家~
2024-12-24 14:29:13
1302
1
原创 【C++】剖析const&&初始化列表
目录----------------------------------------------------begin-------------------------------------------------------const:取地址运算符重载:-----------------------------------------------------middle----------------------------------------------------什么是初始化列表:初始化列表的特
2024-12-23 12:12:34
982
4
原创 【C++】剖析运算符重载和赋值运算符重载
刚开始学习的时候,我也很容易将运算符重载和赋值运算符重载弄混,很伤脑筋,但其实是要想想一个是比较的,一个是赋值的,就可以理解了。其实最容易弄混的是赋值运算符重载和拷贝构造函数,刚开始的时候不懂他们的区别,经过理解还是相对容易哒~以上就是我分享的我对【C++】(剖析运算符重载和赋值运算符重载)理解的相关内容,蟹蟹你的阅读,希望可以对你有所帮助~可以关注博主,今后多多指教,互相学习呀~Rhzkp-优快云博客。
2024-12-22 19:57:29
948
原创 【C++】深入剖析默认成员函数3:拷贝构造函数
上两篇博客我们深入探讨了一下另外两个默认成员函数:构造函数和析构函数。他们两个都有一个特性:(1)对“内置类型”的成员函数:不进行初始化,也不进行清理(就是没有调用析构函数)。(2)对于“自定义类型”的成员函数:会调用它对应的默认构造函数进行初始化,和对应的析构函数进行清理。而今天我们迎来了第三问默认成员函数---拷贝构造函数!听到“构造”两个字,想必大家马上就意识到这个宝贝构造函数跟构造函数有着微妙的关系吧?是的!
2024-12-22 12:52:10
960
原创 【C++】深入剖析默认成员函数2:析构函数
继上一个有点令我头大的构造函数后,真是一波未平一波又起呀,咱们又迎来新的默认成员函数:析构函数!别说,我真的一脸懵了~上一篇构造函数,我们简单地了解到了第一个默认成员函数---的各种便利,总而言之,构造函数就是初始化一个对象,那清理一个对象----便是析构函数咯。在数据结构中我们有实现过Init(初始化,也可以看做相似于构造函数),destroy(销毁,就可以看做相似于析构函数)
2024-12-21 21:34:00
841
原创 C语言-字符串旋转结果
需要两个字符数组,一个字符数组为原数组,另外一个字符数组为自定义的数组,需要输入进行判断,创建一个函数,进入函数进行判断,将两个数组进行对比,相同返回1,反之则返回0。
2024-10-05 15:19:19
316
原创 C语言-调整奇数偶数顺序
先定义一个数组,创建right和left两个指针,利用while循环对数组进行遍历,利用一个temp变量进行交换数组内数值。
2024-09-28 11:03:39
357
原创 C语言-实现strlen函数
先定义一个字符数组,创造一个函数,进入函数使用while循环,遍历数组,当遇到\0时便遍历完成,输出打印数值,需要减去一位,因为数组从0开始
2024-09-26 18:29:29
444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人