自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 单链表专题---暴力算法美学(2)(有视频演示)

本文介绍了三个链表相关算法:1. 合并两个有序链表:通过比较节点值大小,将两个链表有序合并为一个新链表;2. 环形链表约瑟夫问题:创建带环链表后,按指定步长删除节点,直到只剩一个节点;3. 分割链表:根据给定值x将链表分为小于x和大于等于x两部分,再合并。每个算法都包含详细实现代码和思路解析,处理了边界条件并优化了内存管理,适用于链表操作练习和面试准备。

2025-08-10 10:06:00 220

原创 单链表专题---暴力算法美学(1)(有视频演示)

本文介绍了链表操作的三个常见问题及解决方案。1.移除链表元素:通过创建新链表,遍历原链表将非目标值节点尾插到新链表中;2.反转链表:使用三指针法(n1,n2,n3)逐步反转节点指向;3.寻找/删除中间节点:采用快慢指针法,快指针每次移动两步,慢指针移动一步,并讨论了使用虚拟头节点(dummy)处理边界情况的重要性,特别是当需要删除头节点时的特殊情况处理。文中对各算法的实现细节和注意事项进行了详细说明,包括指针操作顺序、循环终止条件等关键点。

2025-08-07 21:55:47 750 2

原创 单链表的拓扑本质:节点互联中的线性哲学

链表的结构跟火车车厢相似,淡季的时候车厢会减少,旺季的时候火车车厢会增加几节,只需要按需去掉车厢节数就可以,每节车厢都是单独存在的。每节车厢都是有车门的。假设如果每节车厢都是上锁的状态,而且都需要不同的钥匙来开启车门,每次只能携带一把钥匙的情况下如何从车头走到车尾?与顺序表不同的是,链表中的每节车厢都是单独申请下来的空间,我们称之为“节点/结点”。我们需要通过指针变量来保存下一个节点的位置才能从当前节点走到下一个节点。答案是:每节车厢中都要携带下一节车厢的钥匙。的存储结构,数据元素的逻辑顺序就是。

2025-08-07 10:24:21 401

原创 顺序表专题

数据结构是计算机存储和组织数据的方式。本文重点介绍了顺序表这一线性数据结构,包括静态和动态两种类型。动态顺序表通过realloc实现按需扩容,解决了静态表空间浪费或不足的问题。文章详细讲解了顺序表的实现步骤:首先创建头文件定义结构体类型,然后在源文件中实现初始化、销毁、尾插/头插、尾删/头删等核心操作,并通过测试文件验证功能。关键点包括:使用指针操作结构体成员、动态扩容策略、插入删除时的边界检查等。顺序表作为连续的物理存储结构,其增删查改操作的时间复杂度分析也是数据结构学习的基础。

2025-07-07 19:24:25 360

原创 C语言---文件操作(2)

这里博主接上文,让我们再次来探讨一下C语言中文件操作的相关内容吧!

2025-06-27 16:38:51 954

原创 C语言-文件操作(1)

/打开文件return 1;//写文件//关闭文件fclose(pf);pf = NULL;return 0;2.2 重要函数的用法2.2.1 fgetc的用法1.如果成功读取字符的话,返回的是字符的ASCII码值---char2.如果读取失败的话,返回EOF//打开文件return 1;//读文件//关闭文件fclose(pf);pf = NULL;return 0;//打开文件return 1;//读文件//关闭文件。

2025-06-22 16:39:34 834

原创 动态内存管理

C语言提供了一个动态内存开辟的函数:这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针;如果开辟失败,则返回一个NULL指针,因此返回这块空间的指针 一定要做检查;返回的类型是:void*所以malloc函数并不知道开辟空间的类型,具体在使用的过程中,使用者自己来决定。如果参数size是0,malloc的行为是标准是未定义的,取决于编译器。

2025-05-31 21:01:06 332

原创 数据在内存中的存储

整数的二进制表示方法有三种:即原码,反码和补码。原码:直接将数值按照正负数的形式翻译成二进制的就是原码。反码:将原码的符号位不变,其他位一次按位取反就可以。补码:反码+1就可以得到。对于整形来说,数据存放内存中其实就是存放补码。原因在于,使用补码,可以将符号位和数值域统一处理。

2025-05-20 11:44:20 743

原创 C语言面试圣经:(结构体内存对齐)---习题

答案是。

2025-05-13 20:58:27 414

原创 C语言初阶---指针(5)

本文承接C语言初阶---指针(4),上文有链接,文章仅为作者个人学习感悟,有不当之处,恳请指正。

2025-05-05 21:43:58 816

原创 C语言初阶———指针(3)

这是第一趟,解决了一个数字的排序,10个元素要比较9次,9个元素要比较8次,8个元素要比较7次,n个元素要比较n-1次。我们之前都是在函数外部计算数组的元素个数,那我们可以把数组传给一个函数后,函数内部求数组元素个数吗?冒泡排序的核心思想是:两两相邻元素进行比较。

2025-04-29 16:24:54 1102

原创 C语言编程题(1)

用total表示所有可以换来的可乐,不管是money(钱 )还是empty(空瓶子)。可以进行多次画图,6块钱可以喝到11瓶可乐,7块钱喝到13瓶可乐,找规律,0 看来只有两位是不一样的,那么这里可以用到异或^要求两个数字的二进制有几位是不一样的,这里我们给两个数字:12和6。解释代码:1和2都是成对出现的,如果要找出单个的3,就要用异或^描述:输入两个整数,求两个整数二进制格式有多少个位不同。下面是这个代码的执行逻辑。6的二进制是0000。

2025-04-28 21:10:18 997

原创 C语言初阶———指针(2)

这里为什么会这样,因为在主函数my_strlen后面的括号里面写了NULL(被挡住了),这个是有问题的,没有直接报错是因为加了宏#define NDEBUG,,如果没写,是直接在assert(str!变量是可以修改的,如果把一个变量的地址交给一个指针变量,通过指针变量的也可以修改这个变量,但是如果我们希望加上一些限制,不能被修改,,怎么做呢?,这里的数组名表示整个数组,取出的是整个数组的地址(整个数组的地址和数组首元素的地址是有区别的)都是会报错的,const在两边修饰任何一种都不可修改!

2025-04-28 15:11:54 1076

原创 操作符---移位操作符,位操作符练习

【代码】操作符---移位操作符,位操作符练习。

2025-04-26 11:04:29 186

原创 C语言-函数递归

递归就是函数自己调用自己。

2025-04-25 14:56:06 348

原创 结构体初阶

short s;double d;struct stu //struct是结构体关键字,stu是结构体类型的名字//结构体成员的类型是sb,结构体成员可以是另外一个结构体int age;}stu;//分号不能丢//这里的s是局部变量struct stu s = { {'w',20,3.14},"张三",30,"20250424" };//结构体嵌套初始化//运行结果为w//运行为20250424。

2025-04-24 20:42:22 334

原创 指针初阶(2)

指针变量也是指针,是变量就有地址,那指针变量的地址存放在哪里?3.指针指向空间释放即使置NULL。4.指针使用之前检查有效性。指针数组是指针还是数组?数组名是首元素的地址。

2025-04-24 11:27:40 475

原创 C语言初阶———指针(1)

指针的类型决定了,对指针的解引用的时候有多大的权限(能操作几个字节),char*的指针解引用就只能访问一个字节,而int *的指针的解引用就能访问4个字节。指针就是变量,用来存放地址的变量。(存放在指针当中的值都被当作地址处理。整型指针加1会跳过一个整型,字符指针加1会跳过一个字符。(概念):指针指向的位置是不可知的。

2025-04-23 19:46:42 306

原创 小白版简易版本------扫雷游戏

小白简易版C语言项目------扫雷游戏

2025-04-23 01:22:43 415

原创 整型提升,操作符详解

整型提升的意义:表达式的整型运算要在cpu的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。因此,两个char类型的相加,在CPU执行时实际上也要先转换为cpu内整型操作数的标准长度。表达式中各种长度可能小于int长度的整型值,都必须先转换为int 或unsigned int ,然后才能送入cpu去执行运算。

2025-04-22 10:22:00 233

原创 C语言初阶-----指针(4)

数组指针变量用来存放数组地址,那怎么获得数组的地址呢?如果要存放数组的地址,就得存放在数组指针变量中,数组是一个存放相同类型数据的存储空间,如果要把函数的地址存到一个数组当中,那这个数组就叫做,函数指针数组,如何定义呢?数组指针变量是,指针变量。存放的是数组的地址,能够指向数组的指针变量。我们学习了指针数组,指针数组是一种数组,数组中存放的是地址(指针)。函数指针变量应该是用来存放函数地址的,未来通过地址能够调用函数的。typedef是用来类型重命名的,可以将复杂的类型简单化。

2025-04-08 11:55:08 98

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除