- 博客(20)
- 收藏
- 关注
原创 二叉树与二叉搜索树(BST):从基础到应用
树是一种非线性数据结构,它像自然界的树一样有"根"和"分支"。有且仅有一个根节点(没有"上级"节点)除根节点外,每个节点有且仅有一个"上级"(直接前驱)每个节点可以有0个或多个"下级"(直接后继)这种"一对多"的关系,让树天然适合表达层次结构。二叉树是一种特殊的树,它的每个节点最多有2个孩子(左孩子和右孩子),且左右孩子的顺序不能颠倒(有序树)。可以理解为:每个节点最多"分两叉",左边一个分支,右边一个分支。二叉搜索树(Binary Search Tree)是一种特殊的二叉树,它的节点值满足。
2025-09-19 19:49:58
630
原创 数据结构——栈与队列
栈和队列是两种基础但非常重要的数据结构,它们分别体现了LIFO和FIFO两种不同的数据处理原则。关键记忆点栈是后进先出(LIFO)结构,只能在栈顶进行操作队列是先进先出(FIFO)结构,在队尾插入,在队头删除两者都可以用顺序或链式方式实现循环队列通过取模运算实现数组空间的循环利用栈和队列在算法和系统设计中有着广泛的应用掌握栈和队列的实现原理和操作特性,对于理解更复杂的数据结构和算法具有重要意义。练习题使用栈实现一个简单的表达式求值器使用队列实现一个简单的消息队列系统。
2025-09-19 19:27:33
1243
原创 双向链表与通用型容器
双向链表是基础数据结构中的重要组成部分,相比单向链表提供了更大的灵活性。通用型容器设计则体现了数据结构设计的抽象思维,通过将数据与结构分离,实现了代码的复用和扩展性。关键记忆点双向链表每个节点有两个指针,分别指向前后节点头节点不存储数据,用于简化操作插入删除操作需要仔细处理指针指向通用容器通过数据类型抽象实现代码复用循环链表通过头节点自我指向实现循环特性掌握双向链表和通用型容器的设计与实现,不仅能够加深对数据结构的理解,也为学习更复杂的数据结构和算法打下坚实基础。练习题。
2025-09-19 19:20:12
722
原创 C语言-数据结构中顺序表详解:从原理到实战应用
顺序表是线性表的一种实现方式,它采用连续的内存空间来存储数据元素,同时保持元素之间的逻辑顺序关系。
2025-09-12 10:06:50
404
原创 数据结构与算法入门指南:从零开始理解程序设计的核心
数据结构是一门研究如何有效组织数据,并提高数据处理效率的学科。数据之间的逻辑关系数据的存储形式基于这些结构的各种操作算法是解决特定问题的一系列清晰指令。就像烹饪食谱一样,它告诉你每一步该做什么来得到想要的结果。时间复杂度不测量实际的运行时间(因为硬件不同),而是计算基本操作的执行次数。// 示例:计算1到n的和i <= n;// 这行代码执行n次// 时间复杂度:O(n)空间复杂度衡量算法执行过程中所需的存储空间大小。// 示例:创建n个元素的数组。
2025-09-10 10:02:02
1006
原创 # C语言预处理详解:宏定义、头文件
宏是一种预处理指令,用于定义代码中的文本替换规则。宏不是变量,也不是函数,只是在编译前进行的文本替换。// 无参宏定义#define PI3.14159261024// 带参宏定义# include <stdio.h> // 无参宏定义 # define PI 3.1415926 # define BUFFER_SIZE 1024 # define WELCOME_MSG "Hello, World!" // 带参宏定义 # define MAX(a , b)((a) >(b)?
2025-09-07 11:30:00
776
原创 C语言联合体与枚举详解
联合体是C语言中一种特殊的数据类型,它允许多个不同的成员变量共享同一块内存空间。与结构体每个成员都有独立内存不同,联合体的所有成员都从同一内存地址开始存储。生动比喻:就像一间多功能会议室,同一时间内只能举办一种活动(会议、培训或演出),但大家都使用同一个空间。// 基本定义char ch;// 字符类型,占1字节int num;// 整型,通常占4字节// 双精度浮点,通常占8字节// 使用typedef简化(推荐)int id;char grade;
2025-09-06 16:58:13
544
原创 C语言结构体详解:从定义到内存对齐与移植性
C语言提供了丰富的基本数据类型(如 int、float、char 等),但在实际开发中,我们经常需要表示一个具有多个属性的复合对象。例如,一个学生可能包含学号、姓名、成绩、身高等信息。如果使用多个变量分别存储,会使得数据管理变得混乱。结构体(Struct)就是C语言中用于将多个不同类型的数据组合在一起形成一个新的自定义类型的方式。它使得我们可以用一个变量表示一个完整的实体,大大提高了代码的可读性和可维护性。int id;int gender;// ... 其他成员。
2025-09-06 16:34:09
774
原创 C语言函数解析
函数是C语言中用于封装特定功能的基本单元。你可以把它想象成一个“黑盒子”:你不需要知道内部是如何实现的,只需要提供输入(参数),它就会返回输出(结果)。这种封装性使得代码更模块化、更易维护和复用。函数是C语言模块化的基础,提高代码复用性和可读性。理解形参与实参的区别,避免误用。局部变量生命周期短,不要返回其地址。递归需谨慎,必须有终止条件。静态函数和回调函数是高级编程中常用的技巧。字符串函数使用时要特别注意内存安全和越界问题。希望这篇博客能帮助你更好地理解和运用C语言中的函数。
2025-09-06 16:29:49
387
原创 C语言内存管理解析:从原理到实践
内存区域存储内容生命周期特点代码段(.text)程序指令整个程序运行期间只读,共享数据段(.data)已初始化的全局/静态变量整个程序运行期间可读写BSS段(.bss)未初始化的全局/静态变量整个程序运行期间初始为0堆(Heap)动态分配的内存手动控制需要手动管理栈(Stack)局部变量、函数参数函数调用期间自动管理printf("分配: %p, 大小: %zu, 位置: %s:%d\n" , ptr , size , file , line);return ptr;
2025-09-06 16:25:27
680
原创 C语言指针中野指针、空指针与段错误的解析
野指针就像是一张写着随机地址的纸条,你根本不知道这个地址指向哪里,可能是系统关键区域,也可能是无效内存。// 这就是一个野指针!printf("野指针的值: %p\n", wild_pointer);// 输出随机地址// printf("尝试访问: %d\n", *wild_pointer);// 危险!可能导致崩溃return 0;空指针是一个特殊的指针值,表示"不指向任何地方"。在C语言中,我们用NULL宏来表示空指针。
2025-09-05 10:47:34
418
原创 C语言指针解析
指针是地址:存储内存位置,而不是实际值& 取地址:获取变量的内存地址* 解引用:通过指针访问指向的值指针运算:基于指向类型的大小进行移动数组与指针:数组名是指向首元素的指针。
2025-09-05 08:56:03
525
原创 C语言数组:数组的全面总结解析(数组初阶、数组高阶)
数组是C语言中最基本也是最重要的数据结构之一。数组的基本概念和声明方法一维数组和多维数组的使用字符数组与字符串的处理数组与指针的关系特殊类型数组的应用数组的常见操作和算法多练习数组的基本操作,如遍历、查找、排序理解数组与指针的关系,这是C语言的核心概念注意数组越界问题,这是最常见的错误之一尝试用数组解决实际问题,如学生成绩管理、数据统计等。
2025-09-02 20:27:12
714
原创 C语言循环语句解析
while循环适用于不确定循环次数的情况do-while循环确保至少执行一次循环体for循环最适合已知循环次数的情况break和continue提供了更精细的循环控制循环嵌套可以处理更复杂的问题。
2025-09-02 12:00:00
1012
原创 C语言控制分支流(if与switch语句)
想象一下日常生活中的选择:如果下雨,我就带伞;否则就不带。程序中同样需要这样的决策能力,这就是条件语句的作用。在C语言中,if和switch语句让程序能够根据不同条件执行不同的代码路径。if语句适用于各种条件判断,灵活性高switch语句适用于多路离散值选择,结构清晰注意代码风格和常见陷阱多练习,培养条件判断的思维模式。
2025-09-02 09:00:00
396
原创 C语言运算符知识解析
掌握优先级:不确定时使用括号,避免依赖记忆理解副作用:特别是自增自减运算符的副作用注意类型转换:混合类型运算时的隐式类型转换避免未定义行为:如这样的表达式多用复合赋值:简洁且效率可能更高谨慎使用位运算符:确保理解其行为,特别是对于有符号数。
2025-09-01 20:02:16
646
原创 C语言进制转换指南
四种进制(二、八、十、十六)的表示方法和前缀各种进制之间的转换技巧C语言中不同进制的输入输出方法实用的记忆技巧和权值表进制转换是计算机科学的基础技能,需要多加练习才能熟练掌握。建议你亲自尝试文中的示例和练习,这将帮助你巩固所学知识。!
2025-09-01 19:38:09
672
原创 C语言基本数据类型解析
C语言的数据类型系统既丰富又灵活,为程序员提供了精确控制内存使用和数据表示的能力。掌握这些基础知识对于编写高效、可靠的C程序至关重要。选择合适的数据类型可以节省内存并提高性能理解符号位和编码方式有助于避免意外的数据错误注意数据类型的取值范围,防止溢出浮点数有精度限制,比较时需特别小心希望这篇全面的指南能帮助您更好地理解和运用C语言的数据类型!
2025-09-01 19:33:16
808
原创 C语言数组初阶:入门级解析
数组是C语言中最基本也是最重要的数据结构之一。数组的基本概念和声明方式数组的初始化和元素访问数组的特点和内存布局如何计算数组大小和元素个数字符数组与字符串的区别数组的常见用法和实战练习掌握数组是学习更复杂数据结构的基础,建议多动手实践,加深理解。在实际编程中,要注意数组越界问题,这是最常见的错误之一。希望这篇博客能帮助你更好地理解和运用C语言中的数组!
2025-09-01 19:25:45
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅