自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构--堆的实现

本文详细介绍了堆数据结构的概念、实现及应用。堆是一种基于完全二叉树的特殊结构,分为大根堆(父节点≥子节点)和小根堆(父节点≤子节点)。文章通过代码示例展示了堆的基本操作:初始化、插入(向上调整)、删除(向下调整)等核心功能,并分析了三种建堆方法的优缺点。重点探讨了堆的两个典型应用:堆排序(通过建堆和元素交换实现排序)和TOP-K问题(使用小根堆找最大前K个元素)。最后提供了完整的代码实现,包括堆结构、堆排序和TOP-K算法的具体解决方案,并通过数据验证了TOP-K算法的正确性。

2025-07-09 13:57:36 834

原创 队列的实现

本文介绍了队列的基本概念、实现方法及相关操作代码。队列是一种先进先出(FIFO)的线性表,允许在队尾插入数据,在队头删除数据。文章采用链表结构实现队列,详细描述了队列的初始化、销毁、入队、出队等核心操作,并提供了获取队头/队尾元素、判空、计算元素个数等辅助功能。代码部分包含头文件(Queue.h)、实现文件(Queue.c)和测试文件(test.c)三个模块,完整展示了队列从定义到测试的全过程。通过链表实现避免了数组结构出队时的效率问题。

2025-07-03 21:46:06 379

原创 数据结构-栈的实现

本文介绍了栈的基本概念和实现方法。栈是一种遵循后进先出(LIFO)原则的线性表,主要操作包括压栈(入栈)和出栈。文章详细讲解了动态增长栈的结构定义(包含数组、栈顶指针和容量)及核心功能实现:初始化、入栈(包含容量检查)、出栈、获取栈顶元素、判空、获取元素个数和销毁栈。最后通过括号匹配问题展示了栈的应用,并提供了完整的代码实现,包括头文件Stack.h、实现文件Stack.c和测试文件test.c。测试案例验证了栈的基本操作功能。

2025-07-03 17:08:32 450

原创 双向链表的实现

本文详细介绍了双向链表的实现原理与操作。主要内容包括:1. 双向链表的基本结构,每个节点包含前驱和后继指针;2. 核心功能实现:初始化、打印、判空、尾插尾删、头插头删、查找、插入删除节点等操作;3. 对比了顺序表和链表的存储特点、访问方式和操作效率;4. 提供了完整的C语言实现代码,包含.h头文件和.c源文件;5. 通过多个测试用例验证了各功能的正确性,包括尾插尾删、头插头删、查找和插入删除节点等操作。文章完整展示了双向链表从理论到实践的完整实现过程。

2025-07-03 11:53:02 259

原创 链表的实现

本文详细介绍了链表数据结构的概念、实现及分类。首先通过火车车厢的比喻解释了链表非连续存储的特性,阐述了节点由数据域和指针域组成的结构。然后重点展示了单链表的C语言实现,包括节点创建、打印、头尾插入/删除、查找、指定位置操作等核心功能代码,并提供了完整的测试用例。最后简要说明了链表的8种分类方式。全文通过代码示例和逻辑分析,系统性地讲解了链表的工作原理和操作方法,为数据结构学习者提供了实用的技术参考。

2025-07-02 20:59:12 742

原创 顺序表的实现

摘要:本文介绍了顺序表的基本概念、分类及实现方法。顺序表是线性表的一种实现方式,分为静态和动态两种类型,其中动态顺序表通过按需分配内存解决空间浪费问题。文章详细阐述了动态顺序表的结构定义(包含数据数组、有效数据量和容量)及其核心操作实现,包括初始化、销毁、扩容、插入(头插/尾插/指定位置)、删除(头删/尾删/指定位置)和查找等功能。最后通过测试代码验证了各项操作的正确性,展示了顺序表作为基础数据结构在实际应用中的完整实现流程。

2025-07-02 20:30:40 851

原创 C语言项目实践——贪吃蛇

手把手教兄弟们如何写贪吃蛇

2025-06-19 19:08:08 1012

原创 C语言中的文件操作

一、为什么使用文件?如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用文件。二、什么是文件?在程序设计中,我们⼀般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。2.1 程序文件程序文件包括源程序文件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)2.2 数据文件。

2025-06-08 17:39:43 1092

原创 动态内存管理

文介绍了C语言中的动态内存管理机制。动态内存分配解决固定数组长度不足的问题,通过malloc/calloc申请内存、free释放内存。realloc可调整已分配内存大小,注意避免数据丢失。常见错误包括对NULL解引用、越界访问、非法释放和内存泄漏。还介绍了柔性数组的特性及其相比指针的内存管理优势。最后说明了程序内存的四大区域:栈区(自动管理)、堆区(手动管理)、静态区和代码段。动态内存管理为程序提供了灵活的内存使用方式,但需要开发者谨慎操作以避免错误。

2025-06-06 22:25:14 1019

原创 C语言中的数据类型(三)--联合体和枚举

本文主要介绍了C语言中联合体(union)和枚举类型(enum)的特性与用法。联合体的特点是所有成员共享同一内存空间,其大小至少为最大成员的大小,并通过示例代码演示了联合体的内存布局和地址特性。文章还展示了如何使用联合体来节省内存空间,以礼品兑换单为例说明其实际应用价值。对于枚举类型,文章阐述了其声明方式、默认值和赋值特点,并对比#define分析了枚举的五大优点:可读性强、类型检查严格、便于调试、可批量定义常量、遵循作用域规则。最后简要说明了枚举变量的赋值方式及其在C和C++中的差异。

2025-06-06 18:44:50 929

原创 C语言中的数据类型(二)--结构体

摘要:本文深入讲解C语言结构体的核心知识点。首先介绍结构体的概念和声明方式,解释如何定义和初始化结构体变量。重点剖析结构体内存对齐规则,通过实例演示对齐计算方法。随后讲解结构体传参的最佳实践,推荐使用指针传参以提高性能。最后详细说明位段的概念、内存分配及使用注意事项,指出位段能有效节省内存但存在跨平台问题。文章通过代码示例解析了结构体嵌套、成员访问等关键操作,为掌握C语言自定义数据类型提供了全面指导。

2025-06-04 22:40:02 783

原创 数据在内存中的存储

本文系统介绍了数据在内存中的存储方式。首先解析了整数的三种二进制表示方法(原码、反码、补码)。其次探讨了大小端字节序的概念及其存在的必要性。最后详细阐述了浮点数在内存中的存储规范(IEEE 754标准),包括符号位、指数位和有效数字位的分配规则,并通过具体代码示例揭示了整数与浮点数在内存解读上的本质差异。

2025-06-04 18:38:19 654

原创 字符函数、字符串函数和内存函数

本文系统介绍了C语言中的字符函数、字符串函数和内存函数。字符函数包括字符分类函数(如islower)和字符转换函数(如toupper),用于字符类型判断和大小写转换。字符串函数涵盖字符串长度(strlen)、拷贝(strcpy)、连接(strcat)、比较(strcmp)、查找(strstr)等操作,以及安全版本(strncpy等)。内存函数包含内存拷贝(memcpy)、移动(memmove)、设置(memset)和比较(memcmp)等底层操作。文章详细讲解了每个函数的功能、使用方法和模拟实现。

2025-06-04 17:59:28 932

原创 深入理解指针(3)——字符指针,数组指针,函数指针,函数指针数组

本文主要讲解了C语言中三种重要指针类型的使用方法:1. 字符指针变量(char*):通过实例说明字符指针存储的是字符串首字符地址而非整个字符串,并解释了常量字符串的内存存储特性。2. 数组指针变量:详细解析了数组指针的定义方法int(*p)[10],强调括号对运算符优先级的影响,并演示了如何用数组指针接收数组地址。3. 函数指针变量:介绍了函数地址的获取方式,函数指针的定义和使用,以及通过函数指针数组实现"转移表"来优化多分支函数调用的技巧。文章通过代码示例对比了传统实现与使用指针的优化方案.

2025-05-30 16:33:06 1027

原创 深入理解指针(2)——指针和数组

本文主要探讨了C语言中数组与指针的关系及应用。首先指出数组名本质上是数组首元素地址,但在sizeof和&操作时例外,会分别计算整个数组大小和获取整个数组地址。通过指针加减运算示例展示了首元素地址与整个数组地址的区别。其次,演示了如何使用指针访问数组元素,说明p[i]与*(p+i)的等价性。然后分析了一维数组传参的本质是传递首元素地址,因此在函数内部无法通过sizeof计算数组长度。最后介绍了二级指针的概念和指针数组的定义,并通过模拟二维数组的应用展示了指针数组的用法,强调其与真正二维数组在内存连续性上的区别

2025-05-30 15:07:04 645

原创 深入理解指针(1)——指针的基础知识

本文介绍了C语言中指针的基本概念和使用方法。主要内容包括:1. 指针的本质是内存地址,通过指针可以高效访问内存数据;2. 指针变量的定义和使用,包括取地址操作符(&)和解引用操作符(*);3. 指针类型对操作权限的影响,不同类型的指针在解引用和加减运算时的差异;4. void指针的特点和使用场景;5. const修饰指针的不同效果;6. 指针运算的三种方式;7. 野指针的成因和避免方法;8. assert断言的使用。指针是C语言的重要特性,正确理解和使用指针对编程至关重要。

2025-05-29 23:53:17 899

原创 C语言操作符详解

C语言操作符详解(超详细),一篇文章带你理解C语言中的所有操作符。

2025-05-24 16:04:39 1161

原创 C语言中的数据类型(一)--内置类型和数组

C语言数据类型学习,包括字符型,整型,浮点型,布尔类型和数组。

2025-05-23 16:09:00 831

原创 在C语言中,如何生成随机数

c语言如何生成随机数,相信你在看完这篇文章之后也会自己使用C语言生成随机数

2025-05-22 18:01:47 520

原创 C语言实现扫雷游戏

C语言实现扫雷游戏,扫雷游戏很好的总结我们对循环语句,数组,函数方面的知识的一个运用,我们在学习后,经过自己的思考能正确的把我们整个代码实现出来的话,说明我们这几个反面已经掌握的挺好的。大家一起加油!!

2025-05-22 17:51:10 998

原创 C语言实现猜数字游戏

c语言实现猜数字游戏,进一步理解分支和循环结构

2025-05-22 14:26:51 827

原创 C语言分支与循环题目练习

C语言学习,分支结构和循环结构练习。

2025-05-21 21:18:53 281

原创 C语言中的循环语句

C语言中循环结构

2025-05-21 17:48:04 916

原创 C语言中的分支语句

C语言分支语句的学习,希望这篇文章对您理解分支语句有一定的帮助。

2025-05-20 22:05:49 687

原创 如何学好c语言

c语言学习

2025-05-20 20:24:14 253 2

空空如也

空空如也

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

TA关注的人

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