- 博客(17)
- 收藏
- 关注
原创 二叉树的基本操作与C语言实现
本文系统介绍了二叉树的基本概念与C语言实现。首先定义二叉树节点结构,详细讲解创建节点、前序构建二叉树和销毁二叉树的方法。重点阐述四种遍历方式:前序、中序、后序的递归实现及层序遍历的队列辅助实现。随后展示二叉树常用操作,包括节点计数、查找节点、判断完全二叉树等算法实现,特别分析了完全二叉树的特点及其在堆结构、内存管理等领域的应用。最后强调二叉树作为基础数据结构的重要性,为学习更复杂的数据结构奠定基础。全文通过清晰的代码示例,帮助读者深入理解二叉树的核心操作与实际应用。
2025-09-13 21:41:07
250
原创 深入理解队列数据结构:从基础实现到实际应用
摘要:队列是一种遵循先进先出原则的线性数据结构,支持入队、出队等基本操作。文章详细介绍了两种队列实现方式:链式队列(动态增长)和循环队列(数组实现),并提供了完整的C语言代码示例。此外,还展示了如何使用两个队列实现栈的功能,分析了实现细节和注意事项。队列在任务调度、消息队列、广度优先搜索等场景中有广泛应用。理解队列的不同实现方式有助于在实际开发中选择合适的数据结构,提高程序效率。
2025-08-27 16:17:17
334
原创 深入理解栈数据结构:从概念到C语言实现
摘要:栈是一种遵循后进先出(LIFO)原则的线性数据结构,核心操作包括入栈(Push)和出栈(Pop)。本文提供了基于动态数组的C语言栈实现,包含初始化、扩容、元素操作等功能。实现中采用动态扩容机制(初始4元素,后续2倍扩容),通过_top指针管理栈顶位置,并加入安全性检查。栈在函数调用、表达式求值、括号匹配等场景有重要应用。该实现结合了数组的高效访问和栈的动态特性,是数据结构基础中的重要内容。
2025-08-27 16:01:35
346
原创 深入剖析顺序表:C语言实现与应用指南
本文详细讲解了顺序表的核心结构和操作实现。顺序表使用动态数组存储数据,包含容量(capacity)和当前元素数量(size)两个关键属性。核心操作包括初始化/销毁、动态扩容(初始4,后续双倍扩容)、插入/删除(头尾和指定位置操作时间复杂度不同)以及查找打印等辅助功能。顺序表支持O(1)随机访问但插入删除效率较低,适用于频繁查询、实现栈结构等场景。文中通过代码示例演示了基本操作流程,并分析了其性能特点和适用场景,最后指出当插入删除操作较多时应考虑使用链表替代顺序表。
2025-08-21 22:28:17
153
原创 C语言文件操作完全指南:从入门到上手
摘要:本文系统介绍了C语言文件操作的核心概念与技术要点。主要内容包括:1)文件类型与用途(文本/二进制文件);2)流的概念与标准流(stdin/stdout/stderr);3)文件操作三步骤:fopen打开(需检查返回值)、fread/fwrite读写(含格式化I/O)、fclose关闭;4)文件缓冲区机制与fflush刷新;5)实用技巧(ftell定位、fseek跳转)和常见陷阱(返回值检查、模式区分)。特别强调了资源释放和缓冲区管理的重要性,为文件处理提供了完整的技术框架。(149字)
2025-08-18 22:07:57
990
原创 C语言程序诞生记:从源代码到可执行程序的奇妙旅程
本文详细介绍了C程序编译过程的四个关键阶段:1)预处理阶段处理宏定义、头文件等指令;2)编译阶段将C代码转换为汇编代码;3)汇编阶段生成包含机器码的目标文件;4)链接阶段合并目标文件和库,完成地址分配和符号重定位,最终生成可执行文件。每个阶段都承担着特定的转换任务,共同完成从源代码到可执行程序的完整转换流程。
2025-08-18 20:25:40
299
原创 C/C++:结构体详解
本文介绍了C语言中结构体的核心概念和使用方法。首先阐述了结构体类型的声明方式,包括常规结构体和匿名结构体的定义与访问。接着讲解了结构体变量的创建与初始化,以及成员访问操作符(.和->)的使用。重点分析了结构体内存对齐的原理和规则,包括对齐原则、总大小计算及其性能优化意义。最后概述了结构体传参的两种方式(值传递和地址传递)以及位段的实现方法。全文系统性地梳理了结构体的关键知识点,特别强调了内存对齐机制对程序效率的影响,为合理设计结构体提供了实践指导。
2025-08-15 22:32:09
762
原创 数据在内存中的存储
摘要:本文介绍了三种数据在内存中的存储方式。整数采用二进制补码存储,包括正负数的编码规则及不同整数类型的内存占用;大小端字节序区分了高低位字节的存储顺序,并提供了判断方法;浮点数遵循IEEE754标准,通过符号位、指数位和尾数位三部分存储,详细说明了单精度浮点数的存储格式及特殊值处理。这些底层存储机制对编程开发、网络通信和跨平台兼容具有重要意义。
2025-08-13 21:27:46
880
原创 C/C++:常见内存函数详解
本文介绍了C语言中常用的内存操作函数:1. memcpy用于非重叠内存块的高效复制,不处理内存重叠问题;2. memmove功能类似但能正确处理内存重叠情况;3. memset用于内存块初始化;4. memcmp用于内存内容比较。文章详细说明了每个函数的参数、实现原理及使用注意事项,这些底层函数在缓冲区管理和数据操作中具有重要作用。使用时需注意各函数特性差异,如memcpy与memmove在处理内存重叠时的不同表现。
2025-08-08 16:47:51
361
原创 C进阶:深入剖析部分字符函数与字符串函数
本文介绍了C语言标准库中常用的字符串处理函数,包括字符转换(tolower/toupper)、字符串长度计算(strlen)、字符串复制(strcpy/strncpy)、字符串连接(strcat/strncat)、字符串比较(strcmp/strncmp)以及字符串查找(strstr)等功能。详细说明了每个函数的原型、参数、返回值和典型用法,并提供了相应的模拟实现代码。文章还介绍了其他实用字符串函数如strtok(字符串分割)和strerror(错误信息转换)等,涵盖字符串处理的主要需求,对理解C语言字符串
2025-08-06 20:39:54
646
原创 函数指针与typedef的深度探索
本文介绍了函数指针和typedef两个重要概念。函数指针是指向函数的指针变量,可用于回调函数、动态调用等场景,包括函数指针数组的应用。typedef用于为现有类型创建别名,能简化复杂类型声明,提高代码可读性。文章详细说明了二者的语法结构、使用方法和实际应用,并对比了typedef与#define的区别,以及在C++11中的扩展。这些工具能有效提升代码的灵活性和可维护性。
2025-08-04 17:02:45
353
原创 C/C++指针进阶:数组与指针
本文系统介绍了C/C++中指针与数组的核心概念:1.数组名的本质是首元素地址的常量指针,但在sizeof和取址操作时例外;2.一级指针存储变量地址,二级指针存储指针的地址;3.指针数组是存储指针的数组,常用于二维数组操作;4.常量字符串指针指向只读区的同一份字符串;5.数组指针指向整个数组,与指针数组本质不同,常用于多维数组操作和动态内存分配。文章详细阐述了各种指针的使用方法、区别及注意事项,包括指针运算规则、参数传递机制和内存管理要点。
2025-08-01 21:20:56
445
原创 C/C++指针深度剖析const修饰、野指针风险控制及函数参数传递机制
1.const放在 * 的左边:限制的是指针变量指向的内容,不能通过指针变量p来修改*p的内容,但是p的指向是可以改变的,即p可以指向其他内容。2.const放在 * 右边:限制的是p这个指针变量,p的指向不能修改即p不能指向其他变量,但p指向的内容即*p可以修改。
2025-05-11 16:54:16
272
原创 解密指针:含义、运算与应用
在理解指针之前需要知道,内存是计算机上的存储空间,程序是运行在内存中的,而地址是计算机内存中每个存储单元的唯一标识符,用于定位和访问存储的数据,可以说指针就是地址。指针变量是用来存放地址(指针)的变量指针变量的大小与指针类型无关,在64位程序(X64)在为8字节,在32位程序中(X86)为4字节,而指针类型决定了指针在解引用(*)时一次性访问多少字节,所以指针的类型决定了指针向前或向后走一步有多大距离。
2025-04-21 21:30:02
284
原创 深入剖析scanf函数与printf函数
scanf()函数⽤于读取⽤⼾的键盘输⼊。程序运⾏到这个语句时,会停下来,等待用户从键盘输⼊。用户输⼊数据、按下回⻋键后,scanf()就会处理用户的输⼊,将其存⼊变量。
2025-04-07 19:09:49
690
原创 Sizeof函数与Strlen函数的用法及区别
sizeof 运算符计算变量或数据类型所占内存的字节数,括号内不进行运算,返回类型为size_t,用%zd打印。使用`sizeof`时不需要包含任何头文件,因为这是C语言内置的操作符。用于计算字符串的长度,即字符串中字符的数量,不包括字符串结束符`\0`。使用`strlen`需要包含头文件`<string.h>`,因为该函数在该头文件中声明。
2025-03-31 17:05:59
225
原创 速通分支语句与循环语句
若如上述代码,表达式是value2则进入该分支执行,但执行完该分支后程序会进行往下走 执行忘后面的代码,如果想要执行完该分支后就跳出循环就在该分支后面再添加break,跳 出即可;其中如果执行了break语句则会直接跳出循环,如果执行了continue语句程序则会跳过 本次循环continue后面的语句直接进入下一次循环。=0,则继续循环,执⾏循环语句;循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的。
2025-03-27 17:50:43
736
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅